以前のテストで出題された質問があり、練習の答えを知る必要があります。
次のクラスがあります。
public class First{
private int num1 = 0;
private int num2 = 0;
private static int count = 0;
public First(int num){
this(num,num);
count++;
System.out.println("First constructor1");
}
public First(int num1, int num2){
this.num1 = num1;
this.num2 = num2;
count++;
System.out.println("First constructor2");
}
public int sum(){
return num1 + num2;
}
public static int getCount(){
return count;
}
}
現在、以下の注文を行っています。
1. First f1 = new First(10);
2. First f2 = new First(4,7);
3. System.out.println("sum1 = " + f1.sum());
4. System.out.println("count = " + First.getCount());
5. System.out.println("sum2 = " + f2.sum());
6. System.out.println("count = " + First.getCount());
これらの6行の後に画面に印刷される行を書き留める必要があります。最初の3行を過ぎると、次のようになります。
First constructor2
First constructor1
First constructor2
sum1 = 20
私を邪魔する唯一のことは、4行目のような行の意味は何ですか?オブジェクトではなくクラス自体を操作するメソッドですか?
別の質問は、パートBで、メソッドが「First」クラス(Objectを拡張する同じメソッド)内で等しいメソッドを再定義して、メソッドが動作するオブジェクトと別の「First」タイプを比較できるようにする必要があることです。物体。num1、num2の両方が等しい場合、メソッドはtrueを返します。
私はこのようなことを考えました:
public class First {
...
...
.
.
.
public boolean equals (First anotherObj){
if ((First.num1 == anotherObj.num1) && (First.num2 == anotherObj.num2))
return true;
return false;
} // equals
} // 'First' class
私は正しいですか?