调用同一个类中的方法时出错

时间:2017-06-02 06:51:58

标签: java

我尝试编译这个基本代码,并且不能让我的主方法调用另一个方法。根据我的理解,我不必创建对象,因为两个方法都在同一个类中。

然而,它给了我错误 - java:' .class'预期 - 当我打电话给我的方法。任何人都知道原因:

    public class Main {
        double x=0;

        public static void main(String[] args) {
            Function(double x);

        }
        public static double Function(double x) {
            x+=5;
            return x;

        }
        }

2 个答案:

答案 0 :(得分:1)

看看你在主方法中做了什么:

public static void main(String[] args) {
    Function(double x);
}

您正在调用类似Function(double x);的方法,但这不正确,删除类型double,然后您需要将变量x 静态 ,因为你处于静态上下文中,之后只需将参数x作为参数传递;

像:

static double x = 0;

public static void main(String[] args) {
    Function(x);
}

Option2正在摆脱静态事物并使用实例......

class Main {
    double x = 0;

    public static void main(String[] args) {
        Main m = new Main();
        m.function(m.x);
    }

    public double function(double x) {
        x += 5;
        return x;
    }
}

答案 1 :(得分:0)

无法从静态方法调用非静态变量。因此,通过创建声明变量的类的对象来调用它。

public class Main {
    double x=0;
    public static void main(String[] args) {
         Main mm=new Main();  //Creating Object of Class
         Function(mm.x);      //pass the value with object.var
    }
    public static double Function(double x) {
        x+=5;
        return x;
    }
}