Programação avançada – capitulo 7
A classe Object:
esta é a classe das quais todas as outras classes derivam
tem métodos importantes:
public String toString()
que retorna uma string que descreve um objeto
public boolean equals(Objecto obj)
tem com objectivo fazer a comparação entre dois objectos, em termos de conteudos, sabendo que usando o == compara referências
e é necessário que ele esteja definido
package e23; class Animal{ private int peso; private String nome; Animal(int p, String s){ this.peso = p; this.nome = s; } public boolean equals(Object ob){ if(this == ob){ return true; } if((ob == null) || (ob.getClass() != this.getClass())){ return false; } // type casting of the argument Animal anim = (Animal)ob; return (this.peso == anim.peso && this.nome == anim.nome); } } public class e23 { public static void main(String args[]) { Animal a1 = new Animal(80, "pedro"); Animal a2 = new Animal(55, "maria"); Animal a3 = new Animal(80, "pedro"); if(a1.equals(a3)){ System.out.println("O método equals"); }else{ System.out.println("Não são iguais"); } } }
public int hashCode()
quando se define o método equals também se deve definir o método hashCode()
este método retorna um inteiro, que resulta da conversão do endereço interno do objecto
package e23; import java.util.Objects; class Animal { private int peso; private String nome; Animal(int p, String s) { this.peso = p; this.nome = s; } public boolean equals(Object ob) { if (this == ob) { return true; } if ((ob == null) || (ob.getClass() != this.getClass())) { return false; } // type casting of the argument Animal anim = (Animal) ob; return (this.peso == anim.peso && this.nome == anim.nome); } @Override public int hashCode() { int hash = 5; hash = 17 * hash + this.peso; hash = 17 * hash + Objects.hashCode(this.nome); return hash; } } public class e23 { public static void main(String args[]) { Animal a1 = new Animal(80, "pedro"); Animal a2 = new Animal(55, "maria"); Animal a3 = new Animal(80, "pedro"); if (a1.equals(a3)) { System.out.println("O método equals"); } else { System.out.println("Não são iguais"); } } }
Este método como outros podem ser inseridos de forma automática no netbeans, se dentro da classe e com o lado direito do reato se optar por inserir código (ALT+INSERT)
+infos(geeksforgeeks.org): LINK gostei da explicação
0 thoughts on “Programação avançada – capitulo 7”