📌  相关文章
📜  教资会网络 | UGC NET CS 2016 年 7 月 – III |问题 74(1)

📅  最后修改于: 2023-12-03 15:26:03.821000             🧑  作者: Mango

教资会网络 | UGC NET CS 2016 年 7 月 – III |问题 74
问题

以下哪个断言对于以下程序中给定的教授 P 是正确的?

class Professor {
    private String name;
    private String subject;

    public Professor(String n, String s) {
        name = n;
        subject = s;
    }

    public String getName() { return name; }
    public String getSubject() { return subject; }
}

class Institute {
    int instituteID;
    String instituteName;
    List<Professor> professors;

    Institute(int instituteID, String instituteName, List<Professor> professors) {
        this.instituteID = instituteID;
        this.instituteName = instituteName;
        this.professors = professors;
    }

    public List<Professor> getProfessors(String subject) {
        List<Professor> result = new ArrayList<>();
        for(Professor p : professors) {
            if(p.getSubject().equals(subject))
                result.add(p);
        }
        return result;
    }
}

(A)

Institute ins = new Institute(1, "IIT");
List<Professor> list = ins.getProfessors("CSE");
assert(list.size() == 2);

(B)

Institute ins = new Institute(1, "IIT");
List<Professor> list = ins.getProfessors("ECE");
assert(list.size() == 0);

(C)

Institute ins = new Institute(1, "IIT");
List<Professor> list = ins.getProfessors(null);
assert(list.size() == 0);

(D)

Institute ins = new Institute(1, "IIT");
List<Professor> list = ins.getProfessors();
assert(list.size() == 0);
解答

选项 (A) 和 (B) 是正确的。因为在此程序中,一个实验室(表示为一个 Institute)由许多教授(表示为 Professor)组成,每个教授都有一个“subject”属 性,表示他/她的专业。因此,当需要获取一个实验室中所有与特定学科相关的教授时,需要使用 getProfessors(String subject) 方法。这个方法接受一个 subject 参数并返回所有与此 subject 相关联的教授的列表。如果没有这样的教授,则返回空列表。

在选项 (A) 中,我们创建了一个名为 ins 的 Institute 对象,然后使用 getProfessors() 方法获取所有带有“subject”属性为“CSE”的教授,然后断言返回的列表应该包括两个元素。

同样,在选项 (B)中,我们创建了一个名为 insInstitute 对象,并使用 getProfessors() 方法获取所有subject属性为“ECE”的教授,断言返回的列表应该是空。

选项 (C) 和 (D) 都不正确,因为 getProfessors() 方法需要一个参数,即 subject。如果传递 null,会导致空指针异常。这在选项 (C) 中会发生,并且在选项 (D) 中,则无法调用此方法,因为没有提供 subject 参数。 因此,我们可以排除选项 (C) 和 (D)。