在我的Java家庭作业中打一堵墙

时间:2014-10-16 16:49:53

标签: java class static

嘿那些将我链接到本网站上其他主题的人。我读过但我还是不明白:(除了我遇到的静态问题之外,其他一切都是正确的吗?

这是作业

  1. (MyInteger类)设计一个名为MyInteger的类。该课程包含:
    • 一个名为value的int数据字段,用于存储此对象表示的int值。
    • 为指定的int值创建MyInteger对象的构造函数。
    • 返回int值的get方法。
    • 方法isEven(),isOdd()和isPrime()如果值分别为偶数,奇数或素数,则返回true。
    • 静态方法isEven(int),isOdd(int)和isPrime(int),如果指定的值分别为偶数,奇数或素数,则返回true。
    • 静态方法isEven(MyInteger),isOdd(MyInteger)和isPrime(MyInteger),如果指定的值分别为偶数,奇数或素数,则返回true。
    • 方法equals(int)和equals(MyInteger),如果对象中的值等于指定值,则返回true。
    • 将字符串转换为int值的静态方法parseInt(String)。不使用Integer.parseInt(x)实现该方法。 绘制类的UML图。实现类。编写一个测试类中所有方法的客户端程序。
  2. 这是代码

    public class MyInteger {
    private int value=0;
    
    public int getValue(){
        return value;
    }
    
    public boolean isEven(){
    if(value%2==0);
        return true;
    }
    public boolean isOdd(){
    if (value%2==1);
        return true;
    }
    public boolean isPrime(){
    for (int i = 2; i<value-1; i++)
    if (value % i == 0)
        return false;
    
        return true;
    }
    
    public static boolean isEven(int x){
    if (isEven(x))
        return true;
    return false;
    }
    
    public static boolean isOdd(int x){
    if (isOdd(x))
        return true;
    return false;
    }
    
    public static boolean isPrime(int x){
    if (isPrime(x))
        return true;
    return false;
    }
    
    public static boolean isPrime(MyInteger x){
    if (isPrime(x))
        return true;
    return false;
    } 
    
    public static boolean isEven(MyInteger x){
    if (isEven(x))
        return true;
    return false;
    }
    
    public static boolean isOdd(MyInteger x){
    if (isOdd(x))
        return true;
    return false;
    } 
    
    public boolean equals (int x){
    int integer;
    MyInteger y = new MyInteger(integer);
    if (x==MyInteger.getValue())
        return true;
    
    return false;
    
    }
    
    public boolean equals (MyInteger x){
    int integer;
    MyInteger y = new MyInteger(integer);
    if (x==MyInteger.getValue())
        return true;
    
    return false;
    
    }
    
    public static int parseInt (String str){
    
    int answer = 0, factor = 1;
    for (int i = str.length()-1; i >= 0; i--) {
        answer += (str.charAt(i) - '0') * factor;
        factor *= 10;
    }
    return answer;
    }
    
    
    public MyInteger(int integer){
    
    }
    
    
     }
    

    现在我已经知道这段代码不会编译,因为在两个equals方法中我都得到if()行上的错误“无法对非静态方法进行静态引用”。任何人都可以告诉我为什么会这样,它意味着什么?我试过谷歌搜索但我真的不明白。

0 个答案:

没有答案