看了半天还是觉得有错
class Student{
        int stuNO;
        String name;
        Family family;
        String school;
}
class Family{
        int members;
        String income;
}
其中对Student进行初始化
Student stu_Mike=new Student();
然后在书上有发现对Family类型的family进行了初始化
stu_Mike.family=new family();  //这句初始化正确??怎么和概念给出的不一样呢??
不是要用Family family=new Family();么??

解决方案 »

  1.   

    当你构造一个Student s=new Student();对象的时候,就是对student进行初始化。
    首先初始化的是Student类中的变量,顺序是静态变量,然后是变量。如果没有给变量进行赋值的话,那么根据变量类型的不同,也会有不同的初始值。也就是说,stuNO会成为0;name=null;
    family=null;
    school=null;
    如果你想构造student的时候想给Family进行初始化成对象的话,而不是null的话。
    就要写成
    class Student{
      int stuNO;
      String name;
      Family family=new Family();
      String school;
    }
      

  2.   

    是一样的意思
    Family family=new Family();//这个是声明一个Family变量family,然后给变量family初始化
    Student stu_Mike=new Student();//声明一个Student变量stu_Mike,然后给变量stu_Mike初始化,但是stu_Mike的成员变量family没有被初始化,所以
    stu_Mike.family=new family(); //这里给stu_Mike的成员变量family初始化
      

  3.   

    Family family=new Family();//把这个拆成下面两句LZ就清楚了,声明和初始化可以同时写也可以分开写
    Family family;
    family = new Family();
      

  4.   

    呵呵··楼主理解错误了··最主要的是后面的那个new··
      

  5.   

    因为 Family 是 Student的一个属性 当然可以
    和直接 实例化 Family  是一样的 
      

  6.   

    知道3楼的意思,但是按照3楼的思想来说,先Family family;然后再stu_Mike.family=new Family();
    是吧~~
    但是问题就出在stu_Mike.family=new family(); 中的family()
    family()是小写的f,而不是应该写出大写的F么??不是应该写出stu_Mike.family=new Family();才对么??  
      

  7.   


    看来LZ还是没明白
    Family family; //这是声明一个变量,Falily是类型,family是变量
    family = new Family(); //这里是给family变量初始化,
                              //注意,这个和Student的family的区别
                              //这里的family是一个独立的变量,不属于谁
    同样的
    class Student{
      int stuNO;
      String name;
      Family family; //这里也是声明一个Family类型的family变量,但是这个变量在一个Student类里面
                       //也就是family变量是Student类的一个成员,要使用family,不能直接用family
                     //要通过(Student的实例变量.family)来使用family
      String school;
    }Student stu_Mike = new Student(); //stu_Mike就是Student的一个实例变量
    所以要使用stu_Mike的family,就要用 stu_Mike.family
    所以stu_Mike的family要初始化,就要 stu_Mike.family = new Family();
    stu_Mike.family = new Family(); //是把stu_Mike对象的成员变量family初始化
    LZ要清楚成员变量和独立变量的使用区别
    LZ还不明白我就真的无语了
      

  8.   


    是要大写的
    stu_Mike.family=new Family(); //Family()而不是family()
    你的理解没错