有人能解释下这段代码么


public class Exam {
    private String name;
    private ArrayList<Question> questions = new ArrayList<>();

    public Exam() {
    }

    public Exam(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public ArrayList<Question> getQuestions() {
        return questions;
    }

    public void setQuestions(ArrayList questions) {
        this.questions = questions;
    }
}

设计Exam类,两个封装的属性分别是name和question集合(该集合存放Question类型的变量)
6行是无参构造,9行是有参构造
剩余四个函数分别是属性name和question的get和set方法,用于初始化或者修改这两个属性并读取

楼上正解