O que posso melhorar desse exemplo de composição, eu fiz isso até agora, se tiver alguma faltando, desnecessária, ou para ser melhorada me avisem!
Classe Principal
import java.util.Scanner;
public class Agregacao {
public static void main(String[] args) {
Carro c1 = new Carro();
c1.setCor("Azul");
c1.setAno(2012);
Scanner input = new Scanner(System.in);
System.out.println("Informe o aro das rodas: ");
c1.defineAro(input.nextInt());
System.out.println("Informe a potencia do carro: ");
c1.defineMotor(input.nextInt());
System.out.println("Aro do Carro: "+c1.getAroCarro());
System.out.println("Potencia do motor do Carro: "+c1.getMotorCarro());
}
}
Classe Motor
[code]public class Motor {
private int potencia;
private String marca;
private boolean flex;
public int getPotencia() {
return potencia;
}
public void setPotencia(int potencia) {
this.potencia = potencia;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public boolean isFlex() {
return flex;
}
public void setFlex(boolean flex) {
this.flex = flex;
}
}[/code]
Classe Roda
[code]public class Roda {
private int aro;
private String marca;
private String cor;
public int getAro() {
return aro;
}
public void setAro(int aro) {
this.aro = aro;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
}[/code]
Classe Carro
public class Carro {
private String cor;
private int ano;
private Motor motor = new Motor();
private Roda roda1 = new Roda();
private Roda roda2 = new Roda();
private Roda roda3 = new Roda();
private Roda roda4 = new Roda();
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public void defineAro(int tamanho) {
this.roda1.setAro(tamanho);
this.roda2.setAro(tamanho);
this.roda3.setAro(tamanho);
this.roda4.setAro(tamanho);
}
public void defineMotor(int potencia) {
this.motor.setPotencia(potencia);
}
public int getAroCarro() {
return this.roda1.getAro();
}
public int getMotorCarro() {
return this.motor.getPotencia();
}
}
Coloquei todos atributos como private por causa do tal do encapsulamento, em algumas ocasiões houve exagero ou não?