public class aa
{ public int count=0;
count=100;
}
class bb
{
public static void main(String args[])
{
aa t_1=new aa();
System.out.println(t_1.count);
aa t_2=new aa();
System.out.println(t_2.count);
}
}
上面的源程序,编译不能通过,提示count=100这一行缺少标识符,是不是说如果在类中即使是全局变量,如果在方法体中,(也就是说在类体中,不可以对变量进行赋值操作)可以对其改变.

解决方案 »

  1.   

    我faint!这不叫全局变量...count是类aa的实例变量, 由public int count=0;定义count = 100;必须是在某个方法里面, 不然肯定编译不过了
      

  2.   

    count=100;这样做是错误的;
    类成员变量初始话是在定义的时候和在构造器里,而其他操作应该在方法中
      

  3.   

    不算真正懂JAVA语法的路过
    需要写成{count=100};
    lz还有几个不规范的地方,
    class名大写,将bb定义成public,文件名为bb.java,才能运行
      

  4.   

    楼上这位兄弟,谢谢你的指点,看一下我这样改了一下是不是更高明\呢?
    public class aa
    { static int count=0;
    {count++;};
    }
    class bb
    {
    public static void main(String args[])
    {
    aa t_1=new aa();
    System.out.println(t_1.count);
    aa t_2=new aa();
    System.out.println(t_2.count);
    }
    }
    这样就不用在每次在构造函数里面写自加了,
    还有我不明白的是,为什么{count++;};话在大括号里可以,如果不加大括号则报错呢?
    请您指教!
      

  5.   

    我觉得JAVA 里 除了定义和初始化的语句   都应该放在方法或者块中!
      

  6.   

    放在花括号里称作“实例块”,顾名思义,是在一个类被实例化的时候执行的语句。
    与此对应的还有“静态块”(花括号外面加上static),就是类在被加载的时候执行的语句。
      

  7.   

    shirley_qi(小菜鸟++ == 学海无崖 ==) ( ) 信誉:100    Blog   加为好友  2007-04-17 16:15:13  得分: 0  
     
     
       1.类名应该大写开头
    2.类里除了属性就是方法,语句要写在方法里...
    可以申明成员变量,同时赋初值;但是不能象lz这样分开写,后面哪句就变成语句了...要写在方法里.
      
     
    Top  
    ----------------------------------------
    第2条不成立
    语句可以写在“块”里