class A
{
int b=0;
}
public class ex35{
public static void main(String [] args)
{
ex35 t=new ex35();
t.method();
}
void method()//error:应该定义成 public static void method(),静态方法只能访问静态方法;
{
A a1=new A();
A a2=new A();
a1.b=a2.b=12;
boolean b1=a1.equals(a2);
System.out.println(b1);
}
}[/code]
简单的说:
==如果比较的是基本类型变量的话,只要2个值相等就返回true了,如果比较的是引用类型变量的话,那么只有这2个引用变量指向的是同一个对象时,才返回true的(其实这时候是比较2个对象存储的地址值的,也就是比较存储的是不是在同一个地方)。
equals是Object类里面的一个方法,也就是所有类都具备的方法,如果你没有重写的话,功能完全和”==“是一样的。比如你没有重写,比较A a1 = new A(); 和 A a2 = new A();的时候它返回的是false的,功能完全和 ==号一样,其实equals的定义你可以自己定义的,你想让2个引用对象满足什么条件就相等,可以重写它。就好像吧,String这个类就重写了equals这个方法,它定义了当2个引用对象的字符序类相同就是相等的了,比如这2个对象 String a = "abc"; 和 String b = "abc"; 比较的结果是返回true的,使用equals定义什么时候就是相等的,你自己完全可以重写它,规则可以自己定,(*^__^*)