JAVA中两个成员变量的内存地址相等有什么用哪?能判断出什么 10

packageTest;importjava.util.Objects;publicclassTest01{publicstaticvoidmain(String[]ar... package Test;

import java.util.Objects;

public class Test01 {
public static void main(String[] args) {
Test02 a=new Test02(1997,12,10);
Test02 a1=new Test02(197,12,10);
boolean b=a.equals(a1);
System.out.println(a+"a的地址");
System.out.println(a1+"a1的地址");
System.out.println(b);

}

}
class Test02{
private int year;
private int month;
private int day;
public int getYear() {
return year;
}

public void setYear(int year) {
this.year = year;
}

public int getMonth() {
return month;
}

public void setMonth(int month) {
this.month = month;
}

public int getDay() {
return day;
}

public void setDay(int day) {
this.day = day;
}

public Test02() {
}

public Test02(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}

@Override
public boolean equals(Object o) {
if(this==o){
System.out.println(o+"o的地址");//a1
System.out.println(this+"this的地址");//a
return true;
}
if(o==null||!(o instanceof Test02)){
return false;
}
Test02 a=(Test02)o;
return year==a.year&&month==a.month&&day==a.day;

}
}
展开
 我来答
2711352
2020-06-30 · TA获得超过133个赞
知道答主
回答量:52
采纳率:0%
帮助的人:13.4万
展开全部
就以你上述问题的源码中重写了 equals 方法来说。用于比较 两个对象的值是否相同,其实现是自行重写。
那么 最先比较两个对象的地址如果相等,则如果两个对象地址相等(既然地址相同则存储值空间唯一的),说明储存的值或者需要判断的值一定是相同的,可以减少后续的数据判断的逻辑。
来自太阳de外星人
2020-06-28 · TA获得超过297个赞
知道小有建树答主
回答量:650
采纳率:80%
帮助的人:190万
展开全部

a,b地址相等作用:

  1. 说明是同一个实例

  2. 改a或者b,对应的a,b也会发生变化

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式