Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação



Documentos relacionados
A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

CURSO DE PROGRAMAÇÃO EM JAVA

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Programação Orientada a Objetos

2 Orientação a objetos na prática

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Java. Marcio de Carvalho Victorino

Universidade Federal de Uberlândia

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Linguagens de. Aula 02. Profa Cristiane Koehler

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

AULA Uma linguagem de programação orientada a objetos

Introdução à linguagem

Linguagem de Programação Introdução a Linguagem Java

3 Classes e instanciação de objectos (em Java)

Programação Orientada a Objetos em Java

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

PROGRAMAÇÃO JAVA. Parte 1

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

NetBeans. Conhecendo um pouco da IDE

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Prof. Esp. Adriano Carvalho

Programação online em Java

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Noções sobre Objetos e Classes

Organização de programas em Java. Vanessa Braganholo

Sintaxe Básica de Java Parte 1

Programação de Computadores - I. Profª Beatriz Profº Israel

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

FBV - Linguagem de Programação II. Um pouco sobre Java

Orientação a Objetos

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Módulo 06 Desenho de Classes

Introdução a Linguagem

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

A Linguagem Java. Alberto Costa Neto DComp - UFS

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Programação Orientada a Objetos

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

JAVA. Fabrício de Sousa

Introdução à Linguagem Java

Programação Orientada a Objetos (DPADF 0063)

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

Programação por Objectos. Java

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Como usar o bluej. Laboratório I Prof.ª Vera Alves

POO Programação Orientada a Objetos. Classes em Java

Um pouco do Java. Prof. Eduardo

Guia de Fatores de Qualidade de OO e Java

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

JSP - ORIENTADO A OBJETOS

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel

BSI UFRPE Prof. Gustavo Callou

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Programação por Objectos

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Programação Orientada a Objetos. Encapsulamento

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso Java Starter. 1

Projeto de Software Orientado a Objeto

CONVENÇÃO DE CÓDIGO JAVA

AULA DE JAVA 1 - CONCEITOS BÁSICOS

Lição 9 Trabalhando com bibliotecas de classes

BC0501 Linguagens de Programação

Programação Orientada a Objetos

LINGUAGEM DE PROGRAMAÇÃO JAVA

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Programação por Objectos. Java

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

Estrutura Condicional em Java

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Lógica de Programação

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Orientação a Objetos com Java

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Introdução a Java. Hélder Nunes

Técnicas de Programação II

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

Introdução à Programação

Laboratório I Aula 2

Roteiro 1: Dados, variáveis, operadores e precedência

Programação de Computadores - I. Profª Beatriz Profº Israel

UNIVERSIDADE FEDERAL DO PARANÁ

Análise de Programação

Transcrição:

Introdução à Programação Orientada a Objetos Programação e Sistemas de Informação

Paradigmas de programação (1) Um paradigma de programação fornece (e determina) a visão que o programador possui sobre a estruturação e execução do programa. 2 Programação procedural Cobol Programação estruturada Pascal, C, Algol Programação orientada a objectos Smalltalk, C++, Java Programação orientada a eventos Visual Basic

Paradigmas de programação (2) Programação estruturada organiza o código através de subprogramas (procedimentos e funções) e recorrendo apenas a três estruturas de controlo: sequenciação, decisão e repetição. 3 Programação orientada a objectos organiza o código em objectos que são autónomos e trocam mensagens entre si durante a execução do programa, imitando o comportamento dos objectos do mundo real.

Tecnologia Java (1) Uma linguagem de programação; Um ambiente de desenvolvimento; Um ambiente de execução; Um ambiente de distribuição. 4

Tecnologia Java (2) Uma linguagem de programação: Utilizada para criar todos os tipos de aplicações através do JSE, JEE e JME. JSE (Java Standard Edition) concentra o núcleo de funcionalidades básicas do Java, sendo adequado na programação de aplicações para desktops e servidores. JEE (Java Enterprise Edition) possui módulos do JSE e adiciona diversas APIs para, entre outras, a programação de aplicações para a Web. 5 JME (Java Micro Edition) destinado à programação de aplicações para telemóveis, PDAs, entre outros.

Tecnologia Java (3) Um ambiente de desenvolvimento: Fornece um grande conjunto de ferramentas: Compilador Executável javac.exe Interpretador Executável java.exe Gerador de documentos Executável javadoc.exe Empacotamento de classes e ficheiros Executável jar.exe 6

Tecnologia Java (4) Um ambiente de execução: Permite a execução de diversas aplicações em máquinas onde o JRE esteja instalado. JRE (Java Runtime Environment) como o próprio nome indica é o Ambiente de Execução Java, constituído pela JVM e pelas bibliotecas Java. JVM (Java Virtual Machine) máquina imaginária que emula uma aplicação em uma máquina real. 7

Tecnologia Java (5) Um ambiente de distribuição: Existem dois ambientes de distribuição principais: JRE Browsers 8

Java como linguagem de programação (1) Criada em 1991 por James Gosling da Sun Microsystems. Esteve para denominar-se Oak (Carvalho) devido à árvore que era visível através da janela de James Gosling. 9 O nome foi mudado para Java porque já existia uma linguagem de programação com o nome Oak.

Java como linguagem de programação (2) Características: (1) Orientada a objectos: desde o início que foi projectada para ser orientada a objectos. Familiar: é muito familiar para os programadores C/C++. Simples: a aprendizagem pode ser feita num curto espaço de tempo. 10

Java como linguagem de programação (3) Características: (2) Robusta: foi pensada para o desenvolvimento de aplicações confiáveis, fornecendo verificações durante a compilação e em tempo de execução. 11 O colector de lixo (garbage collection) responsabiliza-se pela limpeza da memória, libertando assim o programador desta tarefa.

Java como linguagem de programação (4) Características: (3) Segura: as aplicações Java são executadas em ambiente próprio (JRE) o que inviabiliza a intrusão de código malicioso; 12 Portável: os programas desenvolvidos nesta linguagem podem ser executados em praticamente qualquer máquina desde que esta possua o JRE instalado.

Fases de um programa Java (1) 13 1. Criação do código fonte (Programa.java); 2. Compilação do código fonte e geração do bytecode (Programa.class); 3. Interpretação do bytecode pela JVM que funciona então como interpretador; 4. Conversão do bytecode em linguagem máquina.

Fases de um programa Java (2) Ao contrário de outras aplicações, que são compiladas directamente para o código da máquina em que serão executadas, em Java estas somente são transformadas em código máquina em tempo de execução. 14 Este mecanismo permite desenvolver aplicações sem a preocupação do local onde estas serão executadas pois, desde que exista uma JVM instalada, o código será executável.

15 Fases de um programa Java (3)

Fases de um programa Java (4) As informações, relativas ao ambiente no qual uma aplicação Java é executada, são utilizadas pela JVM para fazer optimizações em tempo de execução e, havendo necessidade, o código que está a ser interpretado é transformado em instruções nativas do sistema operativo (código máquina) através do compilador JIT (Just In Time). 16

Programar em Java (1) 1. Fazer o download do JDK: http://java.sun.com/javase/downloads/index.jsp JDK (Java Development Kit) composto pelo JRE e por um conjunto de ferramentas úteis ao programador Java. 2. Instalar o JDK 3. Configurar as variáveis de ambiente 17

Programar em Java (2) 4. Instalar um IDE IDE (Integrated Development Environment) programa que reúne características e ferramentas de apoio ao desenvolvimento de software com o objectivo de agilizar este processo. BlueJ (www.bluej.org) NetBeans (www.netbeans.org) 18 Eclipse (www.eclipse.org)

19 Programar em Java (3)

Regras para escrita de programas em Java (1) Os programas em Java podem assumir três modalidades: Applications, Applets e Servlets. Qualquer programa é organizado em um ou mais ficheiros com a extensão.java contendo apenas uma classe pública cada um. O nome do ficheiro tem que ser exatamente igual ao nome da classe pública que este contém. O Java é totalmente CASE-SENSITIVE, ou seja, distingue as maiúsculas das minúsculas, sendo que meunome é totalmente diferente de MeuNome. 20

Regras para escrita de programas em Java (2) A Sun convencionou o seguinte no que diz respeito a nomes: Classes e Interfaces: A primeira letra deve ser maiúscula e, caso o nome seja formado por mais de uma palavra, as primeiras letras das demais palavras também devem ser maiúsculas. Métodos e Variáveis: A primeira letra deve ser minúscula e após esta aplicar o camelcase. 21 Constantes: Todas as letras devem ser maiúsculas e caso o nome seja formado por mais do que uma palavra estas devem ser separadas por underscore.

Tipos de dados Tipos primitivos boolean char, byte, short, int, long float, double 22 Tipos referência Arrays Classes Interfaces

Tipos primitivos (1) Conversões sem perda de informação (1) byte short, int, long, float ou double short int, long, float ou double char int, long, float ou double int long, float ou double long float ou double float double 23

Tipos primitivos (2) Conversões sem perda de informação (2) 24

Tipos primitivos (3) Conversões com perda de informação As conversões explícitas são efectuadas através do casting. Estas conversões são permitidas em todos os tipos de dados (excepto o boolean), mas o programador deve estar ciente que poderá haver perda de bits. Exemplo int x = 3 short y = (short) x 25

Ficha de Trabalho Nº1 Compreender as conversões entre tipos primitivos. 26

Tipos referência (1) Arrays Objectos que armazenam um número pré-definido de elementos que são acedidos através de índices sempre iniciados em 0. A utilização de arrays implica três etapas: Declaração: a referência do array é declarada Construção: é definido o tamanho e instanciado o array 27 Inicialização: os elementos são inseridos no array

Tipos referência (2) Classes Este tipo referência será abordado posteriormente. Interfaces Este tipo referência será abordado posteriormente. 28

Ficha de Trabalho Nº2 Compreender a utilização dos tipos referência arrays. 29

Operadores principais (1) Operadores aritméticos: 30 Operador Descrição ++ Pré/pós-incremento -- Pré/pós-decremento + Sinal + - Sinal - * Multiplicação / Divisão % Módulo (Resto) + Soma - Subtracção

Operadores principais (2) Operadores relacionais: 31 Operador > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a == Igual a!= Diferente de? : Operador ternário instanceof Descrição Retorna true se o objecto da esquerda for uma instância do objecto da direita

Operadores principais (3) Operadores lógicos: Operador Descrição! (não) Negação && (e) Conjunção (ou) Disjunção ^ (não ou) Disjunção exclusiva 32

Estruturas de controlo (1) if if (expressão booleana) instrução_simples; if (expressão booleana) { instruções } Quando existe apenas uma instrução após o if não é necessário abrir um bloco com as chavetas. 33 Se existirem mais instruções a abertura do bloco é necessária.

Estruturas de controlo (2) if else if (expressão booleana) { instruções } else if (expressão booleana) { instruções } else { instruções } Quando existe apenas uma instrução após o if não é necessário abrir um bloco com as chavetas. 34 Quando houver mais do que uma condição usa-se o else.

Estruturas de controlo (3) while while (expressão booleana) { instruções; } 35 No while o teste é feito à cabeça. Quando existe apenas uma instrução após o while não é necessário abrir um bloco com as chavetas.

Estruturas de controlo (4) do while do { instruções; } while (expressão booleana); No do-while o teste é feito à cauda. Quando existe apenas uma instrução após o do não é necessário abrir um bloco com as chavetas. 36

Estruturas de controlo (5) for for (inicialização; expressões booleanas; passo da repetição) instrução_simples; for (inicialização; expressões booleanas; passo da repetição) { instruções; } Quando existe apenas uma instrução após o for não é necessário abrir um bloco com as chavetas. 37

Estruturas de controlo (6) break e continue break interrompe o ciclo while, do-while ou for. continue interrompe uma iteração e reinicia o bloco com a próxima iteração. 38 while (!terminado) { passarpagina(); if (alguemchamou == true) break; //sai do ciclo if (paginapublicidade == true) continue; //salta esta iteração lerpagina(); } restodoprograma();

Estruturas de controlo (7) rótulo break Quando existem vários ciclos aninhados estes rótulos permitem interromper o ciclo mais externo. 39 revista: while (!terminado) { } for (int i=10; i<100; i++) { } passarpagina(); if (textochato == true) break revista; //sai do ciclo while maisintruções(); restodoprograma(); O break sem rótulo sairia apenas do ciclo for

Estruturas de controlo (8) switch switch(valor) { case valor1 : instruções; break; case valor2 : instruções; break;... default: instruções; } 40 O switch só trabalha com valores inteiros e char.

Pacotes (1) Um pacote em Java é um directório em que está armazenada uma ou mais classes. Os pacotes costumam agrupar classes das mesmas afinidades. Existem inúmeros pacotes em Java sendo dois dos mais utilizados o java.lang e java.util. 41 Para além dos pacotes já existentes o utilizador pode criar pacotes próprios.

Pacotes (2) As classes definidas nos pacotes podem ser empregadas em qualquer outra classe mediante a utilização da instrução import: import java.util.date //indica que será usada a classe Date do pacote java.util import java.util.* //indica que serão usadas todas as classes que pertencem ao pacote java.util Por predefinição o pacote java.lang é importado automaticamente pelo Java não sendo, por isso, necessário fazer o import do mesmo. 42

Entrada e Saída de dados (1) Classe Scanner do pacote java.util 43 import java.util.scanner; public class ModoTexto { } public static void main(string[] args) { } // cria a variável de leitura dos dados Scanner s = new Scanner(System.in); // usa os métodos de leitura específicos do tipo de dados desejado System.out.print( Insira uma frase: "); String linha = s.nextline(); // lê a linha System.out.print( A frase inserida foi +linha); System.out.print( Insira um numero inteiro: "); int num = s.nextint(); // lê um número inteiro System.out.print( O número inserido foi +num);

Entrada e Saída de dados (2) Classe JOptionPane do pacote javax.swing import javax.swing.joptionpane; public class ModoGrafico { public static void main(string[] args) { String nome; //Mostra uma caixa de diálogo que solicita a entrada de dados nome = JOptionPane.showInputDialog( Insira o seu nome: ); String mensagem = O nome inserido foi +nome; //Mostra uma caixa de diálogo com a mensagem JOptionPane.showMessageDialog(null, mensagem); } 44 }

Ficha de Trabalho Nº3 Aplicar a entrada de dados via teclado e a saída de dados via ecrã. 45

Objectos (1) Objectos são coisas que temos no mundo real e abstraímos no mundo virtual para que possamos manipulá-los na resolução de problemas. 46 Os objectos possuem estados e comportamentos que, na programação estruturada, são equivalentes aos dados e subprogramas e, na programação orientada aos objectos (POO), são equivalentes aos atributos e métodos.

Objectos (2) Objecto Atributos Métodos Pessoa nome, idade, género falar, andar Carro marca, modelo, cor acelerar, travar, abastecer Cão nome, raça latir, correr Todos os objectos são oriundos de classes, ou seja, são instâncias das classes. 47

Classes (1) Uma classe é uma especificação para um determinado tipo de objecto. Para que um objecto seja de determinada classe terá, obrigatoriamente, que respeitar a especificação da classe. Uma classe é um tipo de dados referência. 48

Classes (2) Pessoa pessoa1 pessoa2 nome Camila Mário idade 12 17 género F M 49 A coluna Pessoa define a classe enquanto as colunas pessoa1 e pessoa2 são os objectos dessa classe. Cada pessoa particular é uma instância da classe que terá um valor diferente para cada um dos atributos definidos na especificação da classe.

Classes (3) O código seguinte, que corresponde à classe Pessoa, define os atributos dos objectos daquela classe: class Pessoa { } //Atributos String nome; //Nome da Pessoa int idade; //Idade da Pessoa 50

Classes (4) O código seguinte, que corresponde à classe Pessoa, define os métodos dos objectos daquela classe: class Pessoa { } //Métodos void falar() { } System.out.println("Blá, Blá, Blá,..."); 51

Construtores (1) O construtor não é um método, mas antes, um bloco de código que é executado sempre que utilizamos a palavra reservada new. A sua única função é criar uma instância da classe (objecto). Quando o construtor não é explicitamente declarado o compilador insere o construtor default, isto é, um construtor sem parâmetros e com o corpo vazio. 52

Construtores (2) O código seguinte, que corresponde à classe Pessoa, define dois construtores para aquela classe: class Pessoa { //Construtores public Pessoa() { } //Construtor default 53 } public Pessoa(String nome, int idade) { this.nome = nome; this.idade = idade; }

Construtores (3) Cada instância da classe (objecto) ocupa um lugar diferente na memória. class UsaPessoa { } public static void main(string[] args) { Pessoa pessoa1 = new Pessoa( Ana, 12); Pessoa pessoa2 = new Pessoa( Rui, 15); } 54 Na verdade, pessoa1 e pessoa2 não contêm objectos do tipo Pessoa, mas antes, os endereços de memória onde estes se encontram guardados. Memória 253 254 255 256 257 Pessoa nome = Ana idade=12 Pessoa nome = Rui idade = 15

Ficha de Trabalho Nº4 Aplicar a entrada de dados via teclado e a saída de dados via ecrã. 55

Encapsulamento (1) Encapsulamento refere-se ao isolamento entre as partes do programa. Uma das principais formas de o fazer é proibindo o acesso directo aos atributos de um objecto por objectos externos. 56 Para limitar o acesso às classes ou aos membros do objecto (atributos e métodos) utilizamos os modificadores de acesso existentes em Java.

Encapsulamento (2) 57 Modificadores de acesso: public: as classes e membros são visíveis em qualquer lugar ; package: são visíveis em classes do mesmo pacote mas não nas suas subclasses. Na verdade, não existe um modificador com este nome, pois, a ausência de modificador torna-o packcage. protected: são visíveis na mesma classe e suas subclasses independentemente do pacote onde estas últimas se encontrem; private: são visíveis apenas dentro da mesma classe.

Encapsulamento (3) Normalmente, os métodos são públicos (public) e os atributos private (privados); Isto ocorre pois é desejável que os atributos de um objecto só possam ser alterados por ele mesmo, inviabilizando desta forma situações imprevistas. 58

Getters e Setters (1) Estes métodos são responsáveis por fornecer meios para modificar o estado de um objecto, isto é, meios para aceder e modificar os valores dos atributos de um objecto. Estes métodos apenas são criados se forem realmente necessários, ou seja, não se dará acesso aos atributos que não interessam a outros objectos mas interessam apenas ao próprio objecto. 59

Getters e Setters (2) A convenção para estes métodos é a seguinte: Getters: método que retorna o atributo e é na, maioria dos casos, composto pela palavra get[nome do atributo]. Ex: getidade(), getsalario() Quando o método retorna um valor do tipo boolean a convenção passa a ser palavra is[nome do atributo] 60

Getters e Setters (3) A convenção para estes métodos é a seguinte: Setters: método que atribui/modifica o valor de um atributo e é sempre composto pela palavra set[nome do atributo] e o parâmetro do mesmo tipo do atributo. Ex: setidade(int idade), setsalario(double salario) Utiliza-se a palavra reservada this para imputar ao atributo o valor que é passado como parâmetro. 61

Ficha de Trabalho Nº5 Compreender o conceito de Encapsulamento. 62

Referências Bibliográficas EIJE, Albert; BARROS, Cláudio; KOJIIO, Miguel. Curso Java Starter [online]. Disponível na Internet via WWW. URL http://www.t2ti.com/ curso/video/java/ basico/java_starter.php. Consultado em Março 2009 iped. Curso de Java [online]. Disponível na Internet via WWW. URL http://www.iped. com.br/curso/java/. Consultado em Março 2009 63