class Window{
public Window(int i){
System.out.println("Window " + i +" construction");
}
}
class House{
Window w = new Window(1);
public House(){
System.out.println("this is House`s construction");
w = new Window(2);
}
         w = new Window(4);
Window w1 = new Window(3);
}
请问1,在House的构造方法中w = new Window(2);没有问题,其中w的含义
    2在House的构造方法外的w = new Window(4);中w会报错知道的说下,在线等没有分了,不好意思

解决方案 »

  1.   

    Window w = new Window(1);
    申明了non-static的属性,是一个Window的对象, 指针为w,指像了一个new Window(1)对象。 w = new Window(4);这个又是另一句赋值代码,像这样的代码必须写在语句块({})里边。
    如:
    {
    w=new Window(4);
    }
    因为w是non-static 属性,因此必须在非静态方法/语句块中。Window w = new Window(1);而这样的代码是属于申明的代码,可以不放在语句块中,而且允许对申明的变量赋一个初始化的值。
      

  2.   

    1、w是指House中的属性
    2、因为类内元素只能是属性定义及其初始化,构造,业务方法,和main 不可以有其他的赋值语句。。