本帖最后由 dukangweiwang 于 2012-08-07 22:58:16 编辑

解决方案 »

  1.   

    执行顺序不同而已,某些时候你需要对属性做一些函数初始化的话,第一种写法就会显得更方便,比如:
    private String[] students = new String[100];
    private final int xxoo = func(students);
    有时候你依赖于构造参数来工作,那么就必须用第二种写法:
    public Course(int num) {
        students = new String[num]; // 你依赖了构造参数
    }
    绝大多数情况下,确实没太大区别。
      

  2.   


    // 第一种方法
    public class Course {
    ...
    private String[] students = new String[100]; //在这里声明并创建 public Course(String name) {
    this.name = name;
    }
    ...
    }// 第二种方法
    public class Course {
    ...
    private String[] students; //只声明引用变量,未创建

    public Course(String name) {
    this.name = name;
    students = new String[100]; // 在这里创建
    }
    ...
    }