Salve Pessoal! Estou trabalhando com duas classes Casa e Porta. Estou seguindo o exercício da apostila do Paulo Silveira. No entanto, pintou uma dúvida conceitual. No meu contexto, uma Casa é composta de
(1…*)Portas. Como ficam as duas classes em Java? Terei um vetor de Portas como atributo em Casa? Onde posso encontrar um bom material sobre análise orientada a objetos utilizando Java?
Saudações e obrigado.
Bruno Giminiani.
Composição em Java
13 Respostas
acho q vc poderia utilizar o extends para criar a classe porta, indicando a classe casa, por exemplo, “public class porta extends casa…”, não sei se falei bobagem, mas acho q eh isso…
Pois é! Mas neste caso, Porta não “é uma” casa, ela “compões uma” casa!
De qualquer forma, brigadão pela boa vontade!
class Porta{
}
class Casa{
Porta frente, fundos;
}
Veja! A casa tem uma porta na frente e uma nos fundos!
class Porta{
public void abrir(){ System.out.println("oi, eu sou uma porta e estou sendo aberta");}
}
class Casa{
Porta frente, fundos;
public Casa() { this.frente = new Porta(); }
public abrePortaDaFrente() { frente.abrir(); }
}
;-)
As portas tem atributos próprios?
Acho que não entendi direito o q vc quer saber…
neste caso o mais apropriado eu acredito que seja usar um:
Vector<Porta> portas;
Massa!!
Acredito que o correto serial algo como a seguir:
public class Casa {
private List<Porta> portas;
public Casa() {
portas = new ArrayList();
}
//gets e sets suprimidos
}
Dessa forma, uma casa TEM portas.
Abraços.
Pelo amor de Deus usa um List… LinkedList… qualquer coisa menos Vector.
Deixa p; usar Vector quando estiver brincando com Threads…
Um Abraco.
Acredito que o correto serial algo como a seguir:public class Casa { private List<Porta> portas; public Casa() { portas = new ArrayList(); } //gets e sets suprimidos }Dessa forma, uma casa TEM portas.
Abraços.
Nao seria ?!?!?!? :
portas = new ArrayList<Porta>();
Abracos!
me enganei no conceito! mas eh isso ae!
Se a porta tiver atributos proprios o melhor a se fazer
é uma classe para ela. Caso tenha janelas vc pode tentar trabalhar um pouco com herança.
Criando uma classe generica tipo entradas e as classes janela e porta iriam herdar as caracteristicas de entradas e ainda teriam suas proprias caracteristicas implementadas…
Essa é a idéia KassiPretti, obrigado pela dica! Ou melhor, obrigado a todos pelas respostas, serviram de direção! 
falei em vector pois tive a ideia de o numero de portas ser desconhecido, ou haver a necessidade de adicionar ou remover portas em tempo de execução… mas se o número de portas é conhecido, ou lido de um BD… seria correto usar List