问答详情
源自:8-7 Java 中的 static 使用之静态变量

Java第二季1-7问题

public class HelloWorld {
    
    // 定义静态变量,保存班级名称
	     static String className = "JAVA开发一班";

	public static void main(String[] args) {
        
		// 访问静态变量,输出班级名称
		System.out.println(HelloWorld.className);
	}
}

为什么className一定是静态变量,不能是实例变量?删掉static不成立。

提问者:慕斯卡4106679 2015-10-13 17:40

个回答

  • 天启之魂
    2015-10-13 18:41:05
    已采纳

    第一,主函数是静态函数

    第二,静态函数中不能直接调用非静态成员,必须通过对象调用

    如果你的代码中要将className改为非静态, 那么在主函数中就要创建HelloWorld的对象,然后通过对象来调用className

  • 明Only
    2015-11-09 15:40:53

    public class HelloWorld {

        

       // 定义静态变量,保存班级名称

             String className = "JAVA开发一班";

     

       public static void main(String[] args) {

        HelloWorld hello=new HelloWorld();

           // 访问静态变量,输出班级名称

           System.out.println(hello.className);

       }

    }


  • 金牛座小二
    2015-10-13 18:07:19

    静态方法不能调用非静态变量

    静态方法不能调用非静态方法