通过一本书,我正在经历:

“设计一个类名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);

    }
}

10-06 14:55