Sunteți pe pagina 1din 2

/*class Student{

String name;
int rollno;
Student(String name,int rollno){
this.name= name;
this.rollno = rollno;
}

public static void main(String[] args) {


Student s1 = new Student("Madhav",101);
Student s2 = new Student("Priyanka",102);
Student s3 = new Student("Madhav",101);
Student s4 = s1;
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s1.equals(s4));
}
}*/
//===============================================
//Overriding Of equals()
//===============================================

class Student{
String name;
int rollno;
Student(String name,int rollno){
this.name= name;
this.rollno = rollno;
}

//Overriding of equals()
/*public boolean equals(Object obj){
try{
String name1 = this.name;
int rollno1 = this.rollno;s
Student s = (Student)obj;//-------------ClassCastException
String name2 = s.name;//----------------NullPointerException
int rollno2 = s.rollno;
if(name1.equals(name2) && rollno1 == rollno2)
return true;
else
return false;
}catch(ClassCastException e){return false;}
catch(NullPointerException e){return false;}
}*/

//Simplified Version for Overriding of equals()


/*public boolean equals(Object obj){
try{
Student s = (Student)obj;//-------------ClassCastException
if(name.equals(s.name) && rollno == s.rollno)
return true;
else
return false;
}catch(ClassCastException e){return false;}
catch(NullPointerException e){return false;}
}*/

//Simplified Version for Overriding of equals()


/*public boolean equals(Object obj){
if(obj instanceof Student){
Student s = (Student)obj;
if(name.equals(s.name) && rollno == s.rollno)
return true;
else
return false;
}
return false;
}*/

//Proper way for Overriding of equals()


public boolean equals(Object obj){
if(this == obj)
return true;
if(obj instanceof Student){
Student s = (Student)obj;
if(name.equals(s.name) && rollno == s.rollno)
return true;
else
return false;
}
return false;
}

public static void main(String[] args){


Student s1 = new Student("Madhav",101);
Student s2 = new Student("Priyanka",102);
Student s3 = new Student("Madhav",101);
Student s4 = s1;
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s1.equals(s4));
System.out.println(s1.equals("Madhav"));
System.out.println(s1.equals(null));
System.out.println(s1.getClass().getName());
System.out.println("===String class comparision===");
//in String equals() method overidden for content comparision
String s5 = new String("Piyu");
String s6 = new String("Piyu");
System.out.println(s5==s6);
System.out.println(s5.equals(s6));
System.out.println(s5.getClass().getName());
System.out.println("===StringBuffer class comparision===");
//in StringBuffer equals() method is not Overriden hence object class
equals() method executed which is for reference comparision
StringBuffer sb1 = new StringBuffer("Piyu");
StringBuffer sb2 = new StringBuffer("Piyu");
System.out.println(sb1==sb2);
System.out.println(sb1.equals(sb2));

System.out.println(sb1.getClass().getName());

}
}

S-ar putea să vă placă și