为了账号安全,请及时绑定邮箱和手机立即绑定

编译是没问题,帮我看下这个有问题吗?求大神指导!

package TelP;
public class TelPhone {
//手机001
public class Telp1{
public int[] withH1= {600,800};
public float cpu1=1.4f;
public float ram1=2.0f;
}
//手机002
public class Telp2{
public int[] withH2= {600,800};
public float cpu2=1.4f;
public float ram2=2.0f;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TelPhone te = new TelPhone();
Telp1 te1=te.new Telp1();
Telp2 te2=te.new Telp2();
if(te1.equals(te2))
System.out.println("手机配置相同");
else
System.out.println("手机配置不同");
}
}


正在回答

2 回答

你需要重写内部类的equals方法,不然比较的只是两个对象的引用地址(这是new的两个对象, 引用地址都是独自开辟的, 引用地址必然不同)。而你要比较的是两个对象的实体数据是否一致, 所以必须重写equals方法。


2 回复 有任何疑惑可以回复我~
#1

抽象驴 提问者

嗯嗯,谢谢?
2019-01-12 回复 有任何疑惑可以回复我~
#2

AWMA

我想问下重写的equal中 第一句 引用的地址不同 为啥他们两个还是同一个对象
2019-04-13 回复 有任何疑惑可以回复我~
#3

慕标2283219 回复 AWMA

if是判断这两个对象是否同一个对象,若是,返回true并结束
2019-05-01 回复 有任何疑惑可以回复我~

telp2 不是应该创建为telp1的子类吗? 然后在在子类里用equals方法比较。最后在man方法 用telp2再创建不同的对象进行比较?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

编译是没问题,帮我看下这个有问题吗?求大神指导!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信