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

来源:9-9 Java 中的 Object 类 Ⅱ

抽象驴

2019-01-12 16:54

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回答

  • 天蝎醉
    2019-01-12 20:58:06
    已采纳

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


    慕标2283... 回复AWMA

    if是判断这两个对象是否同一个对象,若是,返回true并结束

    2019-05-01 09:53:19

    共 3 条回复 >

  • 慕容0262671
    2019-08-29 22:41:57

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

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530652 学习 · 6091 问题

查看课程

相似问题