このプログラムでは、equals メソッドをオーバーライドして 2 つの参照変数値のフィールド値を比較しようとしていました---- コードは次のとおりです----
public class D {
int i,j;
D(int i,int j)
{
this.i=i;
this.j=j;
}
public boolean equals(Object f)
{
boolean s= (this.i==((D)f).i);
boolean n= (this.j==((D)f).j);
return s==n;
}
}
public class run02 {
public static void main(String[] args){
D d=new D(4,5);
D d1=new D(6,7);
D d2=new D(8,10);
System.out.println(d.equals(d1));//comparing reference variable value
System.out.println(d1.equals(d2));//comparing reference variable value
System.out.println(d);//printing reference variable memory address
System.out.println((d==d1));//comparing reference variable memory address
}
}
Output-true//comparing reference variable value
true//comparing reference variable value
firstProg.e@g3h742//memory address
false//comparing reference variable memory address
戻り値を与えずに public boolean equals(int i, intj) メソッドを作成しようとすると、Java がコンパイル エラーをスローします。