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