Dúvida com Classes

7 respostas
D
No Gel, quando crio um projeto e insiro as duas classes:
public class Pessoa{
    String nome;
    int idade;
    String profissao;

}
e
public class UsaPessoa{

       public static void main(String args[]){
           Pessoa p = new Pessoa();
           p.nome="Ana";
           p.idade=32;
           p.profissao="Secretária";

           System.out.println(p.nome+" "+p.idade+" "+p.profissao);

       }



}
Não consigo instânciar o objeto p porque não encontra a classe Pessoa, agora se eu criar os arquivos sem coloca-los em um projeto funciona, por que?

Obrigado

7 Respostas

L

ve se as duas classes estao no mesmo pacote, e pelo seu codigo voce nao esta utilizando OO

EduFranzoni

Sua classe Pessoa está sem construtor!

e também aconselho a utilizar os métodos getters and setters.

att.

slashjvc

Reveja alguns conceitos de encapsulamento e tente novamente, utilizando getters e setters e variáveis com modificadores de acesso privados.

Exemplo:

public class Pessoa {

    private String nome;
    private int idade;
    private String profissao;
    
    public Pessoa(){
        nome = "";
        idade = 0;
        profissao = "";
    }
    
    public Pessoa(String nome, int idade, String profissao){
        this.nome = nome;
        this.idade = idade;
        this.profissao = profissao;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getProfissao() {
        return profissao;
    }

    public void setProfissao(String profissao) {
        this.profissao = profissao;
    }
}

Na classe Filha:

public class UsaPessoa {
    
    public static void main(String[] args) {
    
        Pessoa p = new Pessoa();
        p.setNome("Ana");
        p.setIdade(22);
        p.setProfissao("Bancária");
        
        System.out.println(p.getNome() + " " + p.getIdade() + " " + p.getProfissao());  
        
    }
}

Tente algo similar…

[]'s

drsmachado

EduFranzoni:
Sua classe Pessoa está sem construtor!

e também aconselho a utilizar os métodos getters and setters.

att.


Especificação java:

Se uma classe não contém um construtor explícito, a JVM proverá um para a mesma.

Mesmo que a classe seja

public class ClasseSemConstrutor{}

Ela terá um construtor

public class ClasseSemConstrutor{
  public ClasseSemConstrutor(){}
}
EduFranzoni

drsmachado:
EduFranzoni:
Sua classe Pessoa está sem construtor!

e também aconselho a utilizar os métodos getters and setters.

att.


Especificação java:

Se uma classe não contém um construtor explícito, a JVM proverá um para a mesma.

Mesmo que a classe seja

public class ClasseSemConstrutor{}

Ela terá um construtor

public class ClasseSemConstrutor{ public ClasseSemConstrutor(){} }

Verdade, bem lembrado! esse construtor inicializa os atributos com 0 ou NULL, né?

williamdasflores

DukeFriend,
provavelmente suas classes não estão na mesma package(pacote). Dê uma olhada nisso, qualquer coisa posta aí

Rachel_da_Silveira_C
DukeFriend:
No Gel, quando crio um projeto e insiro as duas classes:
public class Pessoa{
    String nome;
    int idade;
    String profissao;

}
e
public class UsaPessoa{

       public static void main(String args[]){
           Pessoa p = new Pessoa();
           p.nome="Ana";
           p.idade=32;
           p.profissao="Secretária";

           System.out.println(p.nome+" "+p.idade+" "+p.profissao);

       }



}
Não consigo instânciar o objeto p porque não encontra a classe Pessoa, agora se eu criar os arquivos sem coloca-los em um projeto funciona, por que?

Obrigado

Getters and setters!!

Criado 28 de setembro de 2011
Ultima resposta 3 de out. de 2011
Respostas 7
Participantes 7