我尝试编译这个基本代码,并且不能让我的主方法调用另一个方法。根据我的理解,我不必创建对象,因为两个方法都在同一个类中。
然而,它给了我错误 - 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;
}
}
答案 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;
}
}