Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Java - Dúvida relacionada a manipulação de objetos

Tenho o trecho de código abaixo e a resposta que ele dá.

A dúvida é por que "casaColorida" não vira uma classe com atributos nulos?

Gostaria também de saber se isso tem um nome e onde posso encontrar uma aula ou artigo que desenvolva sobre isso.

    public static void main(String[] args) {
        Casa casaNula = new Casa();
        Casa casaColorida = new Casa("verde","rua 3");

        casaColorida.changeCasa(casaColorida);

        System.out.println(casaNula.toString());
        System.out.println(casaColorida.toString());
    }
public class Casa {
    private String  cor;
    private String  endereco;

    public Casa () {}

    public Casa (String cor, String endereco) {
        this.cor = cor;
        this.endereco = endereco;
    }

    public void changeCasa (Casa a) {
        a.setCor("amarela");
        a = new Casa();
    }
    ...
    //Getters e Setters
    ...
}

Retorno

Cor : null Endereco : null

Cor : amarela Endereco : rua 3

2 respostas

Isso ocorre porque o construtor da casa está setando valores nos objetos:

Casa casaColorida = new Casa("verde","rua 3");

E depois, o método changeCasa não altera a variavel do método main, faz sentido ?

solução!

.....