Point p1=new Point(4,4);
Point p2=new Point(4,4);
if(p1==p2) //false
if(p2.equals(p1)) //true
Point p3=p2;
if(p3==p2) //true
这里涉及的概念原理麻烦讲解下
Point p2=new Point(4,4);
if(p1==p2) //false
if(p2.equals(p1)) //true
Point p3=p2;
if(p3==p2) //true
这里涉及的概念原理麻烦讲解下
equals 是类自己实现的判断是否相等的关系。
也可以这么认为,== 是物理相等,而equals是逻辑相等
Point p2=new Point(4,4);
java中出现关键字NEW便会生成一个新的对象if(p1==p2) //false == 是判断两个引用是否指向同一个对象if(p2.equals(p1)) //true equals是判断两个对象是否相等Point p3=p2;
创建一个新的引用指向p2引用if(p3==p2) //true
菜鸟拙见,高手指点
Point p1=new Point(4,4);
Point p2=new Point(4,4);
if(p1==p2) //false
//p1 , p2是对象引用.这是两个不同的对象 所以他们的引用在内存中也不同.p1 p2 分别指向两个对象
if(p2.equals(p1)) //true
// equal是比较 两个引用所指向的对象内容是否相同, 显然是相同的.
Point p3=p2;
//把p2 的值赋给p3.. p2跟p3就指向同一个对象了. 指向同一个对象的引用当然是一样的. 就这样.
if(p3==p2) //true
而P3和P4是同一个对象,所以相同。
equal方法在Object中与==的作用相同
但是所有的类都继承Object,所以许多类默认的equal方法的效果和==一样
但是一部分类对该方法进行了覆盖,包括Point,此外还有String、Integal等