public class MyCalss{
String a,b; 
StringBuffer c,d; 
a = new String("Hello");
c = new StringBuffer("Hello"); 
b = a;
d = c;
}
话说,这代码有错吗,实在看不出来,刚在机子上测试,给报错了,但还是不明白是哪里语法出错了

解决方案 »

  1.   

    将:
    a = new String("Hello");
    c = new StringBuffer("Hello"); 
    b = a;
    d = c;
    放在一个方法体内吧.
    这是关于实例化引用对象的问题.
      

  2.   

    还是不明白,一定得放吗,我只想把他们当普通成员变量,不用static fianl修饰
      

  3.   

    在java的类中,只能有变量的定义,可以不赋予初始值,也可以在定义一个变量的同时赋予初始值。但像这样分开就会出错:
    String a ;
    a = "abc";除非放在方法体内
      

  4.   

    String a;  //定义一个成员变量a,默认初始值为nulla = "abc"; //用赋值语句给a赋值abc,这是一个表达式语句,不能直接写出来,要放进初始化块或者方法体中 String a;
    {
    a="abc";
    }
      

  5.   

    我曾经老喜欢犯这种错。你定义个变量时可以顺带赋值,但是如果你在方法之外再给他赋值就会报这个错。要么定义一个方法来在该方法中赋值,要么在main中(main也是函数)
      

  6.   

    “在java的类中”这个类中,范围能不能具体一点,是不是指类的成员变量?
      

  7.   


    差不多,这应该是java语言规范的一部分吧