Static methods can't run other methods?
所以,我想做一个非常简单的程序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class test {
public static void main (String args []){
System. out. println("Yum! Pi!");
int pi = 1;
varCreate ();
varAdd ();
}
public void varCreate () {
pi ++;
}
public void varAdd () {
System. out. println(pi );
}
} |
它不会让我这样做的,它说的是:"无法从类型测试静态引用非静态方法varadd"我肯定有一个非常简单的错误,我就是找不到。感谢你的帮助!
- 同时使varcreate()和varadd()都是静态的,应该可以继续
静态方法只能调用静态方法。
要么使函数成为静态的,要么创建一个实例变量来调用方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class test {
static int pi = 1;
public static void main (String args []){
System. out. println("Yum! Pi!");
varCreate ();
varAdd ();
}
public static void varCreate () {
pi ++;
}
public static void varAdd () {
System. out. println(pi );
}
} |
- OOF。应该考虑一下。谢谢!
- 当然还是不行,因为int pi只在main的范围内声明。
- 通过使pi也是静态的来添加代码。
需要实例化测试类以使用(非静态)方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Test {
int pi = 1;
public static void main (String args []){
System. out. println("Yum! Pi!");
Test t = new Test ();
t. varCreate();
t. varAdd();
}
public void varCreate () {
pi ++;
}
public void varAdd () {
System. out. println(pi );
}
} |
`