如何让我的程序将以下实例创建限制为4,这样当我尝试创建第五所学校时,它会显示一条错误消息“学校无法注册最大已达到”。 一如既往地谢谢
public class Driver {
public static void main(String[] args) {
// TODO Auto-generated method stub
Header h1 = new Header();
h1.schoolHeader();
School s1 = new School("Pascoe Vale High School", "101");
School s2 = new School("North Melbourne Primary School", "102");
School s3 = new School("St Aloysuis College", "103");
School s4 = new School("Coburg High School", "104");
School s5 = new School("Chuka Nwobi High School", "105");
}
}
class School {
public static int objCount = 0;
private static String regId;
private String name;
School(String name, String regId) {
this.name = name;
this.regId = regId;
System.out.println("*** Successfully registered " + getName());
objCount++;
}
public void registerHeader() {
System.out.println("--- Registering Participating Schools---");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRegId() {
return regId;
}
public void setRegId(String regId) {
this.regId = regId;
}
}
答案 0 :(得分:2)
您要求的示例代码:
static final int ALLOWED_COUNT = 4;
public School(String name, String regId) {
if (objCount >= ALLOWED_COUNT) {
throw new TooManySchoolsException("Only " + ALLOWED_COUNT + " schools allowed!");
}
this.name = name;
this.regId = regId;
System.out.println("*** Successfully registered " + getName());
objCount++;
}
老实说,这样做并不是一个好主意。更好的是允许创建无限数量的School对象,并有一个单独的SchoolRegistry类来跟踪注册的学校数量。
class SchoolRegistry {
static final int MAX_SCHOOLS = 4;
private List<School> schools = new ArrayList<>();
public void register(School s) {
if (schools.size() > MAX_SCHOOLS) throw new TooManySchoolsException();
schools.add(s);
}
}