ASHAMM
#1
Boa tarde, não entendo pq as duas pessoas que eu criei mostram os mesmos resultados, sendo que eu coloquei valores diferentes.
Classe:
public Cartao(){
this.pais="";
this.numero=0;
}
public Cartao(String pais, int numero){
this.pais=pais;
this.numero=numero;
}
public void setPais(String pais){
this.pais=pais;
}
public void setNumero(int n){
this.numero=n;
}
public int getNumero(){
return numero;
}
public String getPais(){
return pais;
}
public String getNacionalidade(){
if (pais=="Portugal"){
return "Portugues";
}
else {
return "Espanhol";
}
}
Main:
public static void main(String[] args) {
Cartao p1 = new Cartao();
Cartao p2 = new Cartao();
p1.setNumero(123456789);
p1.setPais("Portugal");
p2.setNumero(987654321);
p2.setPais("Espanha");
System.out.println("Pessoa nº1:");
System.out.println("Pais : "+p1.getPais());
System.out.println("Numero : "+p1.getNumero());
System.out.println("Nacionalidade: "+p1.getNacionalidade());
System.out.println();
System.out.println("Pessoa nº2:");
System.out.println("Pais : "+p2.getPais());
System.out.println("Numero : "+p2.getNumero());
System.out.println("Nacionalidade: "+p2.getNacionalidade());
}
Posta o código completo das classes, não apenas os métodos.
ASHAMM
#3
public class CartaoCidadao {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Cartao p1 = new Cartao();
Cartao p2 = new Cartao();
p1.setNumero(123456789);
p1.setPais("Portugal");
p2.setNumero(987654321);
p2.setPais("Espanha");
System.out.println("Pessoa nº1:");
System.out.println("Pais : "+ p1.getPais());
System.out.println("Numero : "+ p1.getNumero());
System.out.println("Nacionalidade: "+ p1.getNacionalidade());
System.out.println();
System.out.println("Pessoa nº2:");
System.out.println("Pais : "+ p2.getPais());
System.out.println("Numero : "+ p2.getNumero());
System.out.println("Nacionalidade: "+ p2.getNacionalidade());
}
}
package cartaocidadao;
public class Cartao {
private static String pais;
private static int numero;
public Cartao(){
this.pais="";
this.numero=0;
}
public Cartao(String pais, int numero){
this.pais=pais;
this.numero=numero;
}
public void setPais(String pais){
this.pais=pais;
}
public void setNumero(int n){
this.numero=n;
}
public int getNumero(){
return numero;
}
public String getPais(){
return pais;
}
public String getNacionalidade(){
if (pais=="Portugal"){
return "Portugues";
}
else {
return "Espanhol";
}
}
}
Por esse motivo.
Deveria ser:
private String pais;
private int numero;
2 curtidas
O static funciona como uma variável global para a classe Cartao. Todas as instâncias de Cartao terão acesso ao mesmo espaço de memória.
1 curtida
ASHAMM
#6
Era exatamente isso! muito obrigado
ASHAMM
#7
Só mais uma coisa: neste codigo pode-me explicar o que é o objeto?
p1 e p2 são instâncias da classe Cartao, ou seja, objetos criados a partir de um tipo pré-definido que é o Cartao.