Composição

Propaganda
APOO
Aula 1.2 – Composição
Prof. Bruno Moreno
[email protected]
Composição
●
●
A composição (ou delegação) é um mecanismo
de reuso da POO;
Com a composição, uma instância de uma
classe existente é utilizada como componente
de outra classe
–
Na prática, uma classe é o tipo do atributo de outra
classe;
2
Classe Data
●
●
Atributos:
–
dia, mes e ano;
–
Qual o tipo desses atributos?
Métodos:
–
Data(dia, mes, ano)
●
–
dataEhValida(dia, mes, ano)
●
–
Construtor da classe;
Avalia se dia, mes e ano são valores que representam uma data
válida;
toString()
●
Método sobreposto da classe Object.
3
Composição
Data.java
public class Data {
private int dia; private int mes; private int ano; public Data(int d, int m, int a) {
if(dataEhValida(d,m,a)){
dia = d;
mes = m;
ano = a;
}else{
dia = 0;
mes = 0;
ano = 0;
}
}
Este é o método
construtor da classe
Data. O construtor é o
responsável pela
inicialização de objetos do
tipo Data.
//… (próximo slide)
4
Composição
Data.java
public boolean dataEhValida(int dia, int mes, int ano) { if(ano%4==0&&mes==2&&dia>0&&dia<30)
return true;
else if((mes==1||mes==3||mes==5||mes==7||
mes==8||mes==10||mes==12)&&dia>0&&dia<32)
return true;
else if((mes==4||mes==6||mes==9||mes==11) &&dia>0&&dia<31)
return true;
else
return false;
}
public String toString() { return dia + "/" + mes + “/” + ano; }
Método toString da
classe Object
sobrescrito.
} // fim da classe Data
5
Composição
Aluno.java
public class Aluno {
Uma instância da classe String
private String nomeDoAluno; Uma instância da classe Data
private Data dataDeNascimento; Ambos podem ser manipulados da
private int numDeMat; mesma forma que numDeMat
public Aluno(String n, Data d, int m) {
nomeDoAluno = n; dataDeNascimento = d;
numDeMat = m; Chamada implícita do método
}
toString da classe Data
public String toString() { String resultado = ""; resultado += “Matrícula: “ + numDeMat + “ Nome: “ + nomeDoAluno+"\n";
resultado += "Nascimento: “ + dataDeNascimento + "\n"; return resultado; }
} // fim da classe Aluno
6
Composição
ExecutaAluno.java
public class ExecutaAluno {
public static void main(String args[]) {
Data nascimento = new Data((byte)18,(byte)12,(short)1984);
Aluno bruno = new Aluno(“Bruno Moreno”, nascimento, 1234567);
System.out.println(bruno);
}
} // fim da classe ExecutaAluno
7
Download