自己写的类如何用==来判断true或false?

解决方案 »

  1.   

    判断一个对象是否相等可以用equles,Object.equles(Object)==true
      

  2.   

    java 不提供运算符重载,别想了,用==来比较引用类型,能返回true的就两种可能
    一是自己和自己比,但是
    String a="aaa";
    String b="aaa";
    a==b;-->false
    a==a;-->true
    b==b;-->true二是jdk1.5的自动装拆箱
    System.out.println(10==new Integer(10));-->true
    System.out.println(new Integer(10)==new Integer(10));-->????????
    你要弄清楚java怎么把值放在内存里的,栈,堆栈,堆,你就明白了
      

  3.   

    java 不提供运算符重载,别想了,用==来比较引用类型,能返回true的就两种可能 
    一是自己和自己比,但是 
    String a="aaa"; 
    String b="aaa"; 
    a==b;-->false 
    错了,java中对字符串的处理是放在堆栈中的,比较特殊,所以a==b是返回true的
    但是a=="aaa"是错的,虽然它们的值一样
    不好意思
      

  4.   

    重写
    public boolean equals(Object obj)这个方法
      

  5.   

    若果是判断两个对象是否引用的是同一个对象可以用==即内存地址是否相同,如过是判断两个对象的内容是否相同只能重写从Object继承来的equals(Object obj)方法了,具体的写法你可以看看String类的源码
      

  6.   

    我认为关键你要注意到:
    ==与equals的区别
    分别是对什么判断的?
    意识到这一点应该就能解决了
      

  7.   

    只要不是同一个对象,== 就会是false,你重写什么方法都没用。
      

  8.   

    在Java里, 比较相等 很特别,你需要分清 == 与equals 的区别。首先 == 是对2个地址值的内容相比觉,注意是内容,是值。 例如 a=3 ,b=4 是 3与4 比较而 equals 是比较地址。、、好知道上面的后,我们 说 两个 类进行比较。其实是同样的道理  你比较的是class 而在object这个类中有equals 你无须象楼上说的重写 equals 而是需要直接用equals比较即可,而==是类内比较用的。
      

  9.   

    重写 
    public boolean equals(Object obj) 
      

  10.   

    你说的时候有没有试过?显然误导新人
    a=="aaa"
    b=="aaa"
    a==b都是true
      

  11.   

    对象之间的比较显然用==和equals是一样的都是比较的地址
    要比较内容就要重写equals方法
      

  12.   

    谁如果说==是比较的内容的话 你好好去看看java编程思想先
    比如String a="abc" 这时常量池或者字符串池中有个"abc"
    而 String b="abc"以后 他的引用b还是指向这个"abc"
    所以a==b比较以后 他们其实地址是相同的所以为true;
    而如果用a=="abc"比较 是先判断常量池中是否已存在"abc"再判断引用a是否指向它 所以结果也是true
    基本类型比较同理;
    但是String a=new String("abc")
    String b=new String("abc")后 再用a==b他们就是false
    因为创建了两个对象 他们比较的是堆里的对象地址 那怎么可能相同呢?
    本人虽然初学者但也不想看到没有实践过的真理;
      

  13.   

    对于类的比较你要想比较内容是否相等就用超类Object类的equals方法。并用自己的类来重写她即是
    obj.equals(obj1)
    如果你想比较他们的地址就用==一般他是用来比较基本类型的
    很少用来比较引用