I'm learning about == vs. equals() and doing various examples. For this one, I understand why r==s is false, but why is r.equals(s) false if they now both have the same content?
public class StringProgram{
  public static void main(String[] args) {
    Person r = new Person("A");
    Person s = new Person("J");
    s.setName("A");
    System.out.println(r.getName());//A
    System.out.println(s.getName());//A
    System.out.println(r==s);//false
    System.out.println(r.equals(s));//false
  }
}
Here is the code of Person :
public class Person{
    private String name;
    public Person(String d){
    name=d;
    }
    public void setName(String a){
      name=a;
    }
    public String getName(){
      return name;
    }
}
EDIT: I see that I have to override it now, but I still don't understand how the assignment works in the example below. I just don't understand why t.getName() is Keen if t is assigned to u.
public class StringProgram{ public static void main(String[] args) {
Person t = new Person("Gene");
Person u = t;
u.setName("Keen");
System.out.println(t.getName());//Keen
System.out.println(t.equals(u));//true
} }
 
     
     
     
     
    