No Gel, quando crio um projeto e insiro as duas classes:
[code]
public class Pessoa{
String nome;
int idade;
String profissao;
}
[/code]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
ve se as duas classes estao no mesmo pacote, e pelo seu codigo voce nao esta utilizando OO
Sua classe Pessoa está sem construtor!
e também aconselho a utilizar os métodos getters and setters.
att.
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
[quote=EduFranzoni]Sua classe Pessoa está sem construtor!
e também aconselho a utilizar os métodos getters and setters.
att.[/quote]
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(){}
}
[quote=drsmachado][quote=EduFranzoni]Sua classe Pessoa está sem construtor!
e também aconselho a utilizar os métodos getters and setters.
att.[/quote]
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(){}
}
[/quote]
Verdade, bem lembrado! esse construtor inicializa os atributos com 0 ou NULL, né?
DukeFriend,
provavelmente suas classes não estão na mesma package(pacote). Dê uma olhada nisso, qualquer coisa posta aí
[quote=DukeFriend]No Gel, quando crio um projeto e insiro as duas classes:
[code]
public class Pessoa{
String nome;
int idade;
String profissao;
}
[/code]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[/quote]
Getters and setters!!