我有一个旧测试中的问题,我需要知道练习的答案。
我们有以下课程:
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 的相同方法)中重新定义方法 equals,以便她能够在该方法操作的对象和另一个“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
我对吗?