刚看下论坛,就看到一个非常有意思的问题:
程序如下:
class People{
private String name;
private int age;
public People(int age){
this.age = age;
}
public static void main(String[] args){
People p1 = new People(19);
People p2 = new People(19);
System.out.print(p1.equals(p2));
}
}
个人认为输出应该为true, 为什么结果却为:false 呢?
对这个问题的回答有一个最有意思了:
People p1 = new People(19);
People p2 = new People(19);
你这是创建了两个不同的对象p1和p2,只是他们的属性age的值一样, 就好比另外一个人的名字和你的名字一样,但你们是两个不同的人,所以那个比较的值是false,如果改为:
People p2 = p1;这时在比较两个对象,返回值应该是true
这个比喻 非常形象!确实age只是people拥有的一个属性!