当前位置: 代码迷 >> J2SE >> 代码中红色标定一部分有什么区别
  详细解决方案

代码中红色标定一部分有什么区别

热度:7127   发布时间:2013-02-25 00:00:00.0
代码中红色标定部分有什么区别?
Java code
public class Course {    private String name;    [u]private String[] students = new String[100]; //在这里创建[/u]    private int numberOfStudents;        public Course(String name) {        this.name = name;          [u]  //students = new String[100]; // 或者在这里创建[/u]    }    public String getName() {        return name;    }        public void addStudent(String student) {        students[numberOfStudents] = student;        numberOfStudents++;    }        public String[] getStudents() {        return students;    }        public int getNumberOfStudents() {        return numberOfStudents;    }}

引用数组在类属性声明的时候创建,或者在构造函数里声明有什么区别?执行结果都是正确的

------解决方案--------------------------------------------------------
探讨
Java code

public class Course {
private String name;
private String[] students = new String[100]; //在这里创建
private int numberOfStudents;

public Course(String name) {
……

------解决方案--------------------------------------------------------
执行顺序不同而已,某些时候你需要对属性做一些函数初始化的话,第一种写法就会显得更方便,比如:
private String[] students = new String[100];
private final int xxoo = func(students);


有时候你依赖于构造参数来工作,那么就必须用第二种写法:
public Course(int num) {
students = new String[num]; // 你依赖了构造参数
}


绝大多数情况下,确实没太大区别。