Каков результат выполнения данной программы?

class Person {
    public String name;
    public int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public boolean equals(Object obj) {
       return obj instanceof Person
               && this.age == ((Person)obj).age
               && this.name.equals(((Person)obj).name);
   }
}

public class Quizful {
    public static void main(String[] args){
        Person p1 = new Person(null, 10);
        Person p2 = new Person("Alex", 22);
        System.out.println(p1.equals(p2));
    }
}
Explanation
Как только && встречает false, то сравнение прекращается и выдаётся результат false.
До строки

this.name.equals(((Person)obj).name);
программа даже не доходит.
Если же заменить && на &, то будет ошибка времени выполнения java.lang.NullPointerException

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes