/*
赋值语句不能够直接写在类里面。
类里面是类的成员,需要定义。你可以在方法里面赋值或者用语句块,如下:
*/class A {
private String s1;
private String s2; // 构造语句赋值
public A() {
s1 = "s1";
} // 语句块赋值
{
s2 = "s2";
} public static void main(String[] args) {
A a = new A();
System.out.println("s1=" + a.s1);
System.out.println("s2=" + a.s2);
}
}

解决方案 »

  1.   

    我认为都可以,没有什么不可以的。但是这种写法不好,为什么不好,效率问题。最好写为:
    s = "str1";或s = "str2";比较一下下面这两个循环消耗的时间你就知道了;for (int i=0; i<1000000; i++)
    {
        String s = "str";
    }for (int i=0; i<1000000; i++)
    {
        String s = new String("str");
    }
      

  2.   

    class Fun
    {
      private String s;//=new String("str1");
      s = new String("str1");//为什么这样不可以
    }
    java语法是你声明类成员变量的时候可以赋予它初值,但是执行一条语句的话就必须是放在成员函数里了:
    class Fun
    {
      private String s=new String("str1");
    }
    你写成这样的话是一条声明一个带初的得成员变量的合法的java语句,如果你写成这样:
    class Fun
    {
      private String s;//=new String("str1");
      s = new String("str1");//为什么这样不可以
    }
    那就是先声明一个成员变量,然后在执行一条java语句了
      

  3.   

    java中类体的内容由成员变量的定义和方法的定义两部分组成。对成员变量的操作只能在方法中。
    如:
    class snow
    {
      int a=520;
      String str="i love snow";//!!!这样就可以!!!
      
      ``````````````````````
    }
    /*******************************************/
    class sbss
    {
      int a;  String str;
      a=520;   str="i love snow" //非法  ````````````````````````````
    }