2 qq 33833831 qq_33833831 于 2016.01.26 21:52 提问

为什么method 需要传对象过去?否则不能调用t.nume

class Work {

    static int num = 3;
    public static void main(String[] args) {

        Work t = new Work();
        t.num = 5;
        method(t);
        System.out.println(t.num);
        System.out.println(num);

    }
    public static void method(Work t){
        t.num = 6;
    }
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.26 23:44
已采纳
 因为静态成员不能直接访问非静态成员,你可以这么写,不需要传 

class Work {
    static int num = 3;
    public static void main(String[] args) {

        Work t = new Work();
        t.num = 5;
        t.method();
        System.out.println(t.num);
        System.out.println(num);

    }
    public void method(){
        t.num = 6;
    }
}
a8761087
a8761087   Rxr 2016.01.27 12:10

不传也行啊

class Work {
    static int num = 3;
    public static void main(String[] args) {

        Work t = new Work();
        t.num = 5;
        method();
        System.out.println(t.num);
        System.out.println(num);

    }
    public static void method(){
        num = 6;
    }
}

不过你这个num定义为static 是毫无意义的。

91program
91program   Ds   Rxr 2016.01.26 22:13

因为 method 是静态的成员函数,只能通过类的变量来访问类的成员、不能直接访问类的成员。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!