eu acho que meus metodos get e set do array porta está errado… por que quando eu uso setPorta dentro do TesteCasa ele não consegue referenciar a variavel dentro da classe Casa. =/ como seria um metodo setPorta sobrecarregado?
E eu nem percebi que eu tava colocando um get aqui dentro da propria classe, private é visivel apenas dentro da classe onde ela é declarada não sei por que eu coloquei aquele get ali :?
Como faço para referenciar um elemento do array usando o metodo set de porta…
Engraçado que eu tinha feito igual esse metodo michell, mas eu achei que estava dando errado porque o metodo quantasPortasEstaoAbertas() estava escrito errado e estava sempre aparecendo true em todos os elementos do array… agora ficou certinho… tenho que praticar mais isso, metodos sobrecarregados e orientação a objeto to muito preso a modo estruturado ainda. valeu gente obrigado pelas dicas
public class Casa {
private String cor;
private boolean porta[] = new boolean[3];
public String getCor() {
return cor;
}
public void pinta(String cor) {
this.cor = cor;
}
public void setPorta(int i, boolean porta) {
this.porta[i] = porta;
}
public void quantasPortasEstaoAbertas() {
int x=0;
for (int i = 0; i < porta.length; i++) {
if ( porta[i]) { x+=1; }
}
System.out.println("Número de portas abertas: " + x);
}
}
public class TesteCasa {
public static void main(String[] args) {
Casa casa = new Casa();
casa.pinta("Vermelho");
System.out.println("Cor " + casa.getCor());
casa.setPorta(0, true);
casa.setPorta(1, false);
casa.setPorta(2, true);
casa.quantasPortasEstaoAbertas();
Casa casa1 = new Casa();
casa1.pinta("Azul");
System.out.println("Cor " + casa1.getCor());
casa1.setPorta(0, false);
casa1.setPorta(1, true);
casa1.setPorta(2, false);
casa1.quantasPortasEstaoAbertas();
}
}
Entendi, mas esse setter default ele ficaria sem ultilidade não é? pelo omenos eu não consegui fazer ele funcionar com os paremetros que eu passo no setter sobrecarregado.
Se tiver alguma função para esse default poderia me da um exemplo para ficar mais claro? mais um exemplo que seja do tipo setar um valor em uma posição de um determinado array.
Ficaria sem utilidade para atribuir um valor numa determinada posição. Não para atribuir um array inteiro. Seria bom pensar que você mesmo, mais na frente, ou outro programador precise atribuir o array inteiro. Dessa forma:
Foo foo = new Foo();
String[] teste = new String[1];
teste[0] = "1";
foo.setXpto(teste);