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

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

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты