2 qq 33833831 qq_33833831 于 2016.01.29 16:05 提问

java入门错误 需要标识符

class Test2 {
int a;
a=10;

}
编译无法通过
class Test2 {
int a=10;

}
则可以通过

13个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.29 17:51

语法错误,Java类定义中只能声明成员变量,对成员变量的赋值操作只能在三个地方:
1,定义成员变量时直接赋值
2,类的构造函数中初始化成员变量
3,非静态代码块中,可以在类定义的任何地方使用{}在其中编写代码块的。
修改你的赋值语句放在括号里面就可以了。如下:
{
a=2;
}

lahand
lahand   2016.01.29 16:09

你的JDK 版本太低了吧

ctrl7416
ctrl7416   2016.01.29 16:18

a=10; 应该不能写在类里吧..前面也没个类型 修饰

leilba
leilba   Rxr 2016.01.29 17:15

这是java的语法,在类里面只能声明和初始化方法和成员变量,但是不能直接加入操作,比如说int a是声明变量,int a=2是声明变量的同时进行初始化,而 a=2则是一个操作,在类这一层是不允许的,你可以在构造方法里面进行这样的操作:

 public class Test2 {

    int a;
    public Test2() {
        a=2;
    }

    public static void main(String args[]) {
        Test2 test2 = new Test2();
        System.out.println("a:"+test2.a);
    }
}

还有一个有意思的方法,如果你实在想写在外面的话,那就定义成静态变量吧:

 public class Test2 {

    static int a;
    static {
        a=2;
    }
    public static void main(String args[]) {
        System.out.println("a:"+a);
    }
}

static{}里面的东西在类进行加载的时候就会进行执行

sinat_33883653
sinat_33883653 这就是java机制。各种变量、方法的加载顺序影响的
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.29 18:03

class Test2 {
int a;
a=10;
}
编译无法通过是因为 int a; 定义了一个类的全局变量。但对此全局变量的使用,必须放在类的成员函数中。如:

 class Test2 {
  int a;
  void Test()
  {
      a=10;
  }
}

class Test2 {
int a=10; // 定义类中全局变量的同时赋值是可以的
}

jhfsdfs
jhfsdfs   2016.01.29 18:05

类里面有属性和方法,不能直接写表达式,要放到静态块,不然报错

qq_29829081
qq_29829081   2016.01.29 18:07

在静态代码块中也可以对变量a进行赋值的!

fyf604702289
fyf604702289   2016.01.29 21:18

网站还不错
网址是:

fyf604702289
fyf604702289   2016.01.29 21:19

网址是

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