关于java:静态方法无法运行其他方法?

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"我肯定有一个非常简单的错误,我就是找不到。感谢你的帮助!


静态方法只能调用静态方法。

要么使函数成为静态的,要么创建一个实例变量来调用方法。

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);
    }
}


需要实例化测试类以使用(非静态)方法:

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);
    }
}

`