0

need explanation:I don't know how the code runs here ,help me out if anybody else there

class Animal { String name; Animal(String n) { name = n; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Animal other = (Animal) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } } class Program { public static void main(String[ ] args) { Animal a1 = new Animal("Robby"); Animal a2 = new Animal("Robby"); System.out.println(a1.equals(a2)); } }

16th Nov 2017, 6:42 AM
Santhosh Selvam
Santhosh Selvam - avatar
1 Answer
+ 3
You have customized (overridden) the hashCode and the equals method of Animal class to fit your purpose and need, and in main method of class Program you call the overridden equals method to compare two instances of Animal class for equality. Hth, cmiiw
16th Nov 2017, 8:16 AM
Ipang