Jump to content

Duvida iniciante


marinho77
 Share

Recommended Posts

Comecei agora a aprender java pelo que comecei a ler a vossa wiki. No entanto surgiu-me a seguinte duvida :

public class Ponto {
private int x;
private int y;

public Ponto(int x, int y) {
 this.x = x;
 this.y = y;
}

public boolean equals(Object obj) {
 //se é o próprio ponto então são iguais
 if(this == obj) {
	 return true;
 }

 //se não é instância da classe Ponto, nunca podem ser iguais
 if(!(obj instanceof Ponto)) {
	 return false;
 }

 //Se não é o próprio ponto mas é uma instância de ponto
 //então vamos comparar os valores para ver se são iguais
 Ponto outro = (Ponto)obj;

 return this.x = outro.x && this.y = outros.y;
 }
}

Nesta redefenição do método equals no ultimo return para que é criado um "outro". No ultimo return em vez de se utilizar "outro.x" não podiamos utilizar obj.x ?

Edited by apocsantos
geshi
Link to comment
Share on other sites

Sem esse casting essas variaveis não existem.

as variáveis não passam a existir só por cauda de um cast ...

Mas assim a criação do objecto outro nao era necessária 😕

tu não estás a criar nenhum objecto, estás a criar uma referência a um outro objecto (que dizes ser do tipo Ponto)

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Certo, mas para que estou a criar aquela referência aquele objecto se posso simplesmente usar o "obj" ?

estas a criar a referência para facilitar o acesso ao parêmetro da classe. somente isso.

é obrigatório? não.

deves fazer ? sim, para facilitar a leitura.

agora a pergunta seria : saberias aceder aos parâmetros recorrer à referência ?

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

estas a criar a referência para facilitar o acesso ao parêmetro da classe. somente isso.

é obrigatório? não.

deves fazer ? sim, para facilitar a leitura.

agora a pergunta seria : saberias aceder aos parâmetros recorrer à referência ?

Ah, ok. Do que eu vi até agora eu acho que sim bastava para isso fazer

this.x == obj.x && this.y == obj.y

Ou, seria de outra forma?

Link to comment
Share on other sites

Engano meu. Na segunda parte do codigo queria dizer

HashSet<Contas> principal = new HashSet<Contas>();

marinho77 às vezer é mais facil aprender fazendo do que perguntando! que tal dar uso ao PC para programar esses exemplos e tirar algumas conclusoes?

HashSet<Contas> principal = new HashSet<Contas>(); é valido mas como o

HappyHippyHippo ja disse e bem Set é um interface, que pode ser instanciado por diversos tipos de Sets, utilizando-o dessa forma estas a tornar o teu codigo mais flexivel.

Se tens uma Casa essa casa pode ter dois andares, 10 janelas, uma porta... o que tu quiseres....

Mas se tens um Apartamento , continua a ser uma casa mas sö com um andar...

Se tens uma Vivenda com dois pisos e com piscina, continua a ser uma casa....

Pergunta: Qual é a forma comum que podes usar para os objectos em causa? sao todos Casas!

No caso dos Sets, o Set é a Casa e o HashSet é um pequeno Apartamento....

....

Edited by siul72
Link to comment
Share on other sites

Nuns exercicios que estou a praticar. Queres que coloque o código todo aqui ?

Edit: Aqui esta

interface IC (){
 void faz();
 void reverte();
}
public class controlo (){
 private IC[] comandos = new IC[6];
 public void carrega(int indice, IC c){
   comandos[indice]=c;
}
 public void operador(int indice){
   if(comandos[indice]!=null){
  comandos[indice].faz;
   }
}

}
Edited by marinho77
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.