三个变量a,b,c。如果a.equals(b) 同时 b.equals(c)返回都是True,那么是否总是c.equals(a)?
另外,这在java中有什么作用或者用途?
谢谢

解决方案 »

  1.   

    是的,java的equal方法的设计是要遵循这个原则的
      

  2.   

    不一定哦,即使不同类型也可以equals
      

  3.   

    equals 只是一个普通的方法。从原则上讲,如果 a.eq.b,  b.eq.c 那么,应该让 a.eq.c但你自己写的类也可以不这样,只是不符合原则,但可以这么实现。
      

  4.   

    equals不被override的情况下
    a.eql(c)
      

  5.   

    应该是的
    这是equals()方法实现的原则
    1、自反性:对于非null的引用,x.equals(x)==true
    2、对称性:x.equals(y)==true当且仅当y.equals(x)==true
    3、传递性:x.equals(y)==true and y.equals(z)==true then x.equals(z)==true
    4、一致性:如果x、y指向的引用没变,重复x.equals(y)应始终 为true
    5、对于任何非null的引用x,x.equals(null)==false
      

  6.   

    public class A 
    {     public String  a1="A1";
        public String a2="A2";

    public void p1(){
    System.out.println(a2);
    };    public boolean equals(Object a){

    if(((A)a).a1.equals(this.a1) ||((A)a).a2.equals(this.a2) ) return true;
    return false;
    };     


      public static void main(String[] args) 
        {  A a=new A();
    A b=new A();
    A c=new A();

    b.a2="A3";
    c.a2="A3";
    c.a1="A4";
    System.out.println(a.equals(b));
    System.out.println(b.equals(c));
    System.out.println(a.equals(c));


        } 
    }运行结果: true; true; false
      

  7.   

    a =(A1,A2)
    b =(A1,A3)
    c =(A4,A3)
      

  8.   

    不一定,看你equals怎么重载了equals只是一个方法,你可以任意改变判断条件的
      

  9.   

    同意楼上的, 答案是不一定,equals方法实现不一样另外不知道楼主所说的abc是否是同一类型? 如果是的话, 答案应该是一定的.
      

  10.   

    大多的java类里面都override equals方法了
      

  11.   

    建议LZ看看effective java里面有很详细的说明,以及如果不满足传递性的后果
      

  12.   

    这是equals()方法实现的一个原则你要重写equals()最好遵循
      

  13.   

    做个小程序测试一下不就行了啊!
    是相同类型的对象之间的比较,结果是相同的!
    不同类型的对象之间比较的话,就要看你怎样重写hashCode()和equals();
    是自己定义的类型还要实现Comparable 接口!
      

  14.   

    to:ttaallkk1(j2ee_lover) 
       
    equals不被override的情况下
    a.eql(c)请问你override在在大陆的常用翻译是什么?它具体是什么意思?我有点不太清楚了。C++中是覆盖(实现)基类的虚函数的意思。翻译也是覆盖吗?但在JAVA中是什么意思呢?谢谢 。
      
     
      

  15.   

    我们用java解决实际问题。欢迎有经验的java程序员加入我们的讨论,因人数接近上限,初级人员暂时不能加入,请谅解。QQ 群:3001581