问题描述
packagecn.first.oop;publicclassStudent{Stringname;intid;intage;Stringgender;intweight;publicvoidstudy(){System.out.println(name+"在学习");System.out.println(name+id);}publicvoidsayhello(Stringsname){System.out.println(name+"向"+sname+"说:你好");}publicstaticvoidmain(String[]arge){Students1=newStudent();s1.name="张磊";s1.id=5123;s1.study();s1.sayhello("老王");各位高人,我是Java初学者。运行这个程序的时候如果把System.out.println(name+id);句子放到程序最后,为什么程序显示的是错误的。
解决方案
解决方案二:
因为main方法是static类型的,也就是静态方法,在静态方法中不能调用非静态的全局变量。
解决方案三:
main方法都是已经实实在在存在内存里的东西,不再接受定义了。System.out.println(s1.name+s1.id);
解决方案四:
静态方法里不能使用类的成员变量。静态方法和静态变量是类的属性,成员方法和成员变量是对象的属性。有类的时候不一定有对象,有对象的时候一定有类了。所以,在成员方法里可以使用静态变量和静态方法,但在静态方法里不能使用成员变量和成员方法。
时间: 2024-10-06 04:02:35