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

Orientação a objeto

Olá Pessoal,

Na classe abaixo, tenho a instância de 3 objetos. As 2 primeiras instâncias seta valor para seu atributo. No último bloco é setado os objetos dos 2 primeiros objetos com a classe mestre. Não entendo esse último bloco. Alguém poderia me explicar como funciona ou tem alguma analogia de entendimento.

Classe A{

    ClasseMestre cm = new ClasseMestre();

    ClassePrimaria cp = new ClassePrimaria();
    cp.setNome("Fulano");

    ClasseSecundaria cs = new ClasseSecundaria();
    cs.setTelefone("55555");

    cm.setClassePrimaria(cp);
    cm.setClasseSecundaria(cs);

    return cm;

}

Obrigado!!

6 respostas

vc esta passando a referencia do objeto cp e cs para o método setClassePrimaria e setClasseSecundaria do objeto cm e retornando a referencia do objeto cm

Marcos imagine o seguinte cenario. A class mestre tem 2 objetos, que seria a ClassePrimaria, ClasseSecundaria

public Class ClasseMestre {
    private ClassePrimaria = new ClassePrimaria();
    private ClasseSecundaria = new ClasseSecundaria();
    // mais atributos.

    os getters e setters dos objetos.
}

Agora não podemos esquecer dos metodos de acesso para poder (navegar) entre os objetos que estão nessa classe, que seria os getters e os setters,

Agora vamos supor um cenário de teste correto?

public class Teste {
    public static void main(String[] args) {
        //Vamos instanciar um objeto.
        ClasseMestre cm = new ClasseMestre();
//temos um objeto instanciado, agora podemos manipular 
as variaveis desse objeto com a variavel criada cm.

    cm.setClassePrimaria(cp); // lembra dos setters então,
aqui você ta settando o objeto ClassePrimaria atraves do seu objeto ClasseMestre,
isso se chama orientação objetos.

O mesmo serve para o outro objeto, e o return,
por exemplo se eu retorna 
return cm; 
aqui já retornei meu objeto cm com os outros objetos settados
    }
}

Deu para entender? não so bom em explicação. Mais qualquer duvida manda mais ai.

Olá Pessoal, obrigado pela resposta!!

Alisson, fiz uma análise da classe... A mesma pode ser restrutura dessa forma? Tem o mesmo efeito? Creio que fica mai simples. `

public Class ClasseMestre {

    private ClasseMestre  cm = new ClasseMestre ();
    private ClassePrimaria cp;
    private ClasseSecundaria cs ;
    // mais atributos.

 cm.setCp( new ClassePrimaria());
cm.getCp().setNome("Fulano");

 cm.setCs( newClasseSecundaria ());
cm.getCs().setTelefone("5555");

return cm;
}
solução!

Opa, então vamos lá, pensa o seguinte maneira, você tem a ClasseMestre criada ok? então tira a atributo da sua classe.

public class ClasseMestre {

    private ClasseMestre cm = new ClasseMestre(); // Não precisa, então apaga kk.
    private ClasePrimaria cp = new ClasePrimaria();
    private ClasseSegundaria cs = new ClasseSegundaria();



    public ClasseMestre getCm() {
        return cm;
    }
    public void setCm(ClasseMestre cm) {
        this.cm = cm;
    }
    public ClasePrimaria getCp() {
        return cp;
    }
    public void setCp(ClasePrimaria cp) {
        this.cp = cp;
    }
    public ClasseSegundaria getCs() {
        return cs;
    }
    public void setCs(ClasseSegundaria cs) {
        this.cs = cs;
    }

E sempre é bom você instanciar os objetos que ele tem, igual as ClassePrimaria e classeSegundaria, assim você não leva o erro do nullpointer.

public class ClasseMestre {
    private ClasePrimaria cp = new ClasePrimaria();// sempre instancia
    private ClasseSegundaria cs = new ClasseSegundaria(); // sempre instancia
}

E olha os seus atributos tão como private, então será necessario gerar os getters e setter para poder acessar ou poder atribuir um valor. Agora vamos testar os seus código, do jeito que você fez eu nunca vi alguém fazendo. Mais você tá na lógica certa sobre orientação objetos. Continue do estudo que vai pegar. Abraços e bom estudo.

Opa, muito obrigado pelas orientações Alisson,

Abraços!

Marcos sempre marca como resolvido os seus tópico porque podem ajudar mais gente, com os problemas que tiverem iguais ao seus, e duvida também kk

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software