通过一本书,我正在经历:
“设计一个类名MyInteger。该类包含:
...等等等等等等...
如果此对象中的值分别为偶数,奇数或素数,则方法isEven(),isOdd()和isPrime()分别返回true。
如果指定的值分别为偶数,奇数或素数,则静态方法isEven(int),isOdd(int)和isPrime(int)分别返回true。
静态方法isEven(MyInteger),isOdd(MyInteger),isPrime(MyInteger),如果指定的值分别为偶数,奇数或素数,则它们返回true。
这是到目前为止我得到的。顶部易于使用object.isEven()实现。
第二,我假设这只是在不实际设置值和更改对象的情况下显示结果?所以我可以做object.isEven(2)吗?
最后一个...让我很不高兴。我不知道。 = /请帮帮我。提前致谢。
澄清:
1。
public boolean isEven(){
// code
}
MyInteger object = new MyIntger(50);
object.isEven();
2。
public boolean isEven(int num){
// code
}
MyInteger.isEven(50)???
3。
public boolean isEven(int MyInteger)???
???
最佳答案
这似乎是令人困惑的
boolean odd2 = MyInteger.isOdd(new MyInteger(5)); // static call
您使用
MyInteger
的实例作为参数传递。将MyInteger
作为参数传递的另一种方法是:MyInteger num = new MyInteger(5);
boolean odd2 = MyInteger.isOdd(num); // static call
class MyInteger{
int num;
public MyIntger(int num){
this.num = num;
}
// Method 1
public static boolean isOdd(int num){
...
}
// Method 2
public boolean isOdd(){
...
}
// Method 3
public static boolean isOdd(MyInteger num){
...
}
}
public class TestMyInteger{
public static void main(String[] args){
// Method 1 call
boolean odd1 = MyIntger.isOdd(5); // static call
// Method 3 call
boolean odd2 = MyInteger.isOdd(new MyInteger(5)); // static call
// Method 2 call
MyIntger num = new MyIntger(5); // create instance
boolean odd3 = num.isOdd(); // instance call
System.out.println(odd1);
System.out.println(odd2);
System.out.println(odd3);
}
}