Problemas com o contrutor

3 respostas
M
public class Proprietario extends Pessoa{

    protected String cpf;

    public Proprietario(){}

    public Proprietario(String nome, String cpf) {
        super.nome=nome;
        this.cpf = cpf;
    }

   public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }


}
public class Main {
    public static void main(String[] args) {
        Proprietario prop = new Proprietario();
        System.out.println("Proprietário.........: "+ new Proprietario("Aldo","080-723-469-48"));
   }
}

Qual o problema disso o nome nao aparece na minha main, ele aparece algo como Proprietário.........: Proprietario@b8f82d

3 Respostas

ebortolatto

Bom dia!
Sobreescreva o método toString() na classe Proprietário:

public String toString() { return nome; }

Acho que isso resolve :slight_smile:

walissongpi

ebortolatto:
Bom dia!
Sobreescreva o método toString() na classe Proprietário:

public String toString() { return nome; }

Acho que isso resolve :slight_smile:

O método System.out.println invoca o método toString de que a sua classe herdou de Object (toda classe extends Object).
Quando vc manda imprimir um objeto Propietário ele chama o método toString e imprime alguma coisa identificando o Objeto e não os atributos do objeto.
O ideal mesmo é sobrescrever o método toString em sua classe. :smiley:

Trebloc

Só uma dica. Ao invés de fazer isso:

public Proprietario(String nome, String cpf) { super.nome=nome; this.cpf = cpf; }

Faça uma chamada ao construtor de Pessoa:

public Proprietario(String nome, String cpf) { super(nome); this.cpf = cpf; }

Ou ao método:

public Proprietario(String nome, String cpf) { setNome(nome); this.cpf = cpf; }

Fica mais “elegante” :wink:

Criado 6 de março de 2010
Ultima resposta 6 de mar. de 2010
Respostas 3
Participantes 4