Upload
mario-pereira
View
1.071
Download
4
Embed Size (px)
DESCRIPTION
Aula de revisão sobre Programação Orientada a Objetos com uso de Java para os exercícios e exemplos. O código esta disponível no github.
Citation preview
Linguagem Orientada a ObjetosRevisão
Mario Jorge [email protected]
Orientação a Objetos / Java
AmbienteJava
Orientação a Objetos
Tipos e Modificadores
Fluxo de Controle Arrays
Tratamentode Erro
AplicaçõesConsole
Interfacejavax.swing
InterfaceEventos
AplicaçõesDesktop
Ambiente Java
JDK
JRE
Maquina Virtual Java (JVM)
Coleta de Lixo
Segurança do Código
Orientação a Objetos
Características:
EncapsulamentoOcultar elementos da implementação de uma classe, porém
fornecendo uma interface publica para acesso.
HerançaExtensão
Acrescenta novos métodos aos já herdados
SobreposiçãoRedefine os métodos implementados previamente
PolimorfismoComportamentos diferentes para mesma mensagem a
depender do tipo.
Palavras Chave
Tipos Primitivos
Wrapper
String texto = "12.0";int numero = Integer.parseInt(texto);
Método:
Integer.valueOf(String s) : intInteger.parseInt(String s) : Integer
Objetos
Objetos são conceitos que têm identidade, estado e
comportamento
Pode-se pensar sobre o mundo real como uma coleção
de objetos relacionados
Características de OO:Um programa OO é objeto e é composto por objetosO programa OO são objetos se comunicando através de
mensagens uns com os outrosOs objeto possuem um tipo que descreve seus dadosObjetos de tipos iguais podem receber as mesmas
mensagens
Classes e Objetos
Classes
Classes são uma especificação para objetosUma classe define o que um objeto pode ter e o que ele
pode fazer.A diferença entre classe e objeto:
"Classe" é um gabarito (como a planta de uma casa)"Objeto" é a concretização do gabarito (casas feitas a partir
da mesma planta)Resumindo:
Classes não são os objetos que representamClasses definem lógica estáticaClasses não existem no contexto da execução
Declaração de Classes em Java
[<declaracaoPacote>][<declaracaoImport>]<modificadores> class <NomeClasse> { [<modificadores>] <tipo> <nome> = [<valorInicial>];
[<modificador>] <NomeClasse> ([<listaArgumentos>]){
[<instruções>] } [<modificadores>] <tipoRetorno> <nome> ([<listaArgumentos>]) {
[<instruções>]
}
}
Declaração de Classes em Java
package br.com.mariojp.veiculo;public class Carro { private double cargaMaxima = 50.5; private double cargaAtual; public Caro(){ cargaAtual = 10.5; } public double getCargaAtual(){ return cargaAtual; } public void setCarga(double peso){ cargaAtual = peso; }
}
Fluxos de Controle
if (expressão boleana) { instruções;} else { instruções;}
for (inicializa; expressão booleana; altera) {instruções;
}
Resumo
Classe Definição (código fonte) de um objeto (instancia)
ObjetoUma instancia de uma classe. Um objeto.
AtributoUm elemento dados de um objeto. Variável de instancia.
MétodoUm elemento de comportamento de um objeto. Um
procedimento. Construtor
“Similar a um método” usado para inicializar um novo objetoPacote
Agrupamento de Classes e/ou subpacotes
Array
String names[];names = new String[3];names[0] = "Georgianna";names[1] = "Jen";names[2] = "Simon";
String names[] = {"Georgianna","Jen","Simon"};
Data data[];datas = new Data[3];dates[0] = new Data(22, 7, 1964);
dates[1] = new Data(1, 1, 2000);
dates[2] = new Data(22, 12, 1964);
Data dates[] = {new Data(22, 7, 1964),new Data(1, 1, 2000),new Data(22, 12, 1964)};
Tratamento de Erros
try {instruções onde pode ocorrer uma Exceção;
} catch (Tipo de Exceção instancia_erro) {instruções caso ocorra a Exceção;
} finally {instruções que vão ocorrer sempre;
}
declaracaoMetodo throws tipo Exceção{ instruções onde pode ocorrer uma Exceção;}
Exercício
1. Escreva uma classe Pontocontém x e y e que podem ser definidos em construtorSobrescreva o metodo toString para retornar o x e o y
2. Escreva uma classe Circulo, que contenharaio inteiro e origem do tipo PontoDois construtores que define origem e raio
Circulo(int x,int y, int raio)
Cirtulo(Ponto ponto, int raio)
método que retorna a áreamétodo que retorna a circunferênciause java.lang.Math.PI (Math.PI)Sobrescreva o metodo toString para retornar o raio e a
origem
Exercício
3. Escreva uma classe Teste com seguinte main:Ponto p1 = new Ponto(2,5);Circulo cir1 = new Circulo(p1,4);Circulo[] circulos = new Circulo[5];circulos[0] = cir1;circulos[1] = new Circulo(new Ponto(1,2),5);circulos[2] = new Circulo(3,4,5);circulos[3] = new Circulo(1,1,6);circulos[4] = new Circulo(5,5,6);for( Circulo c : circulos ) { System.out.println(c);}
Exercício
4. Crie uma classe abstrata Figura que:- contém o atributo String cor e por padrão a cor “branco”- crie um método abstrato string desenhar()
5. Altere a classe Circulo para ela herdar de Figura- Faça as alterações necessárias- Implemente o método desenhar() retornando o nome
da figura e a cor. - Implemente um construtor Circulo(String cor)
6. Crie uma classe Quadrado que herda de Figura e implemente o método desenhar().-Implemente o construtor Quadrado(String cor)-Implemente o construtor Quadrado()
Exercício
7. Escreva uma classe Teste com seguinte main:Figura[] figuras = new Figura[5];figuras[0] = new Quadrado(“Verde”);figuras[1] = new Circulo(“amarelo”);figuras[2] = new Circulo();figuras[3] = new Quadrado(“azul”);figuras[4] = new Circulo(“preto”);
for( Figura f : figuras ) { System.out.println(f.desenhar());}
Formas de percorrer uma Coleção
for(Iterator it = <colecao>.iterator() ;it.hasNext() ; ){ <Tipo> <referencia> (<Tipo>) it.next();
}
Iterator it = <colecao>.iterator();while (it.hasNext()){<Tipo> <referencia> (<Tipo>) it.next();
}
for( <Tipo> <referencia> : <coleção> ) { usar a <referencia>;} //JAVA 1.5