4. Orientação a Objetos
Características:
Encapsulamento
Ocultar elementos da implementação de uma classe, porém
fornecendo uma interface publica para acesso.
Herança
Extensão
Acrescenta novos métodos aos já herdados
Sobreposição
Redefine os métodos implementados previamente
Polimorfismo
Comportamentos diferentes para mesma mensagem a
depender do tipo.
7. Wrapper
String texto = "12.0";
int numero = Integer.parseInt(texto);
Método:
Integer.valueOf(String s) : int
Integer.parseInt(String s) : Integer
8. 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 objetos
O programa OO são objetos se comunicando através de
mensagens uns com os outros
Os objeto possuem um tipo que descreve seus dados
Objetos de tipos iguais podem receber as mesmas
mensagens
10. Classes
Classes são uma especificação para objetos
Uma 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 representam
Classes definem lógica estática
Classes não existem no contexto da execução
12. 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;
}
}
13. Fluxos de Controle
if (expressão boleana) {
instruções;
} else {
instruções;
}
for (inicializa; expressão booleana; altera) {
instruções;
}
14. Resumo
Classe
Definição (código fonte) de um objeto (instancia)
Objeto
Uma instancia de uma classe. Um objeto.
Atributo
Um elemento dados de um objeto. Variável de instancia.
Método
Um elemento de comportamento de um objeto. Um
procedimento.
Construtor
“Similar a um método” usado para inicializar um novo objeto
Pacote
Agrupamento de Classes e/ou subpacotes
15. 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)
};
16. 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;
}
17. Exercício
1. Escreva uma classe Ponto
contém x e y e que podem ser definidos em construtor
Sobrescreva o metodo toString para retornar o x e o y
2. Escreva uma classe Circulo, que contenha
raio inteiro e origem do tipo Ponto
Dois construtores que define origem e raio
Circulo(int x,int y, int raio)
Cirtulo(Ponto ponto, int raio)
método que retorna a área
método que retorna a circunferência
use java.lang.Math.PI (Math.PI)
Sobrescreva o metodo toString para retornar o raio e a
origem
18. 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);
}
19. 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()
20. 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());
}
21. 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