请问这样为什么不行

来源:8-7 Java 中的 static 使用之静态变量

MiaLoo

2016-05-16 12:58

static String className;

className="JAVA开发一班";

这样当通过类名访问 静态变量的时候就无法输出JAVA开发 一班,但是当改成

static String className="JAVA开发一班";时就可行 请问是为什么呢


写回答 关注

2回答

  • 丿Tomorrow
    2016-05-16 13:56:52
    已采纳

    语法错误,不能先定义后赋值。这样的话static String className ; className="JAVA开发一班"; 系统认为应该是同一个语句,所以不能后赋值。


    MiaLoo

    非常感谢~

    2016-05-16 19:03:16

    共 1 条回复 >

  • 慕粉粉饼
    2016-05-16 14:15:26

    是可以这样写的。代码如下是可以运行的:

    package com.herry;

    public class test1 {

         static String className;

    public static void main(String[] agrs){

          className = "Java开发一班";

          System.out.println(test1.className);

    }

    }

    不知道你的原因是不是因为static变量没有定义在类中,而是定义在main方法里了。

    慕粉粉饼 回复MiaLoo

    不可以放在static String className;这句的后面。 如楼上所说,这样就会造成语法错误。错误的原因是static在定义一个变量的时候同时若没有赋值的话,系统会默认给值,并且static只能被初始化一次。因此你后面的className="JAVA开发一班";再对其className进行赋值,就赋值不上并且报错。

    2016-05-16 21:20:28

    共 3 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题