1.对上表中描述的五个实例变量进行编码。
大学名称
世界排名
代码 getter 仅用于:
院系
学生们
注册
如果提供的值有效并设置为实例变量,则 setter 必须返回 true; 否则为假。
import java.util.ArrayList;
import java.util.List;
public class Test {
private String universityName;
private int worldRank;
private List<String> faculties=new ArrayList<>();
private List<String> students=new ArrayList<>();
private List<String> enrollment=new ArrayList<>();
public Test(String universityName, int worldRank) {
this.universityName = universityName;
this.worldRank = worldRank;
}
public String getUniversityName() {
return universityName;
}
public boolean setUniversityName(String universityName) {
if (universityName.length()>=3){
this.universityName = universityName;
return true;
}
return false;
}
public int getWorldRank() {
return worldRank;
}
public boolean setWorldRank(int worldRank) {
if(worldRank>0){
this.worldRank = worldRank;
return true;
}
return false;
}
public List<String> getFaculties() {
return faculties;
}
public List<String> getStudents() {
return students;
}
public List<String> getEnrollment() {
return enrollment;
}
@Override
public String toString() {
String str="Test{" +
"universityName='" + universityName + '\'' +
", worldRank=" + worldRank +
", faculties=[";
for (String faculty : faculties) {
str=str+faculty+",";
}
str=str+"], students=[";
for (String student : students) {
str=str+student+",";
}
str=str+"], enrollment=[";
for (String e : enrollment) {
str=str+e+",";
}
str=str+"]}";
return str;
}
public boolean addStudents(String name) {
if(name.length()>=2){
students.add(name);
return true;
}
return false;
}
public boolean addFaculty(String name) {
if(name.length()>=3){
faculties.add(name);
return true;
}
return false;
}
public boolean addEnrollment(String sName,String tName) {
if(students.contains(sName) && faculties.contains(tName)){
enrollment.add(sName+"|"+tName);
return true;
}
return false;
}
public int countStudentsPerFaculty(String name) {
int count=0;
for (String s : enrollment) {
String t=s.substring(s.lastIndexOf("|")+1);
if(t.equals(name)){
count++;
}
}
return count;
}
}
看起来,不像是基本的编写了。
难度不大,我们可以深入交流下。
package com.csdn;
import java.util.ArrayList;
public class University {
// 大学名称
private String universityName;
// 世界排名
private int worldRank;
// 院系
private ArrayList<String> faculties = new ArrayList<>();
// 学生们
private ArrayList<String> students = new ArrayList<>();
// 注册
private ArrayList<String> enrollment = new ArrayList<>();
public String getUniversityName() {
return universityName;
}
public boolean setUniversityName(String universityName) {
// 字符串长度大于等于3
if (universityName.length() >= 3) {
this.universityName = universityName;
return true;
}
return false;
}
public int getWorldRank() {
return worldRank;
}
public boolean setWorldRank(int worldRank) {
// 正非零整数
if (worldRank > 0) {
this.worldRank = worldRank;
return true;
}
return false;
}
// 构造函数2
public University(String universityName, int worldRank) {
super();
this.universityName = universityName;
this.worldRank = worldRank;
}
// toString
@Override
public String toString() {
return "University [universityName=" + universityName + ", worldRank=" + worldRank + ", faculties=" + faculties
+ ", students=" + students + ", enrollment=" + enrollment + "]";
}
// 编写一个名为“addStudent”的布尔方法,该方法接受一个字符串作为输入,表示学生姓名。 如果输入有效(姓名长度>=2),则该方法应返回 true
// 并将其添加到 ArrayList “students”。 如果输入无效,则该方法必须返回 false。
public boolean addStudent(String sutdent) {
if (sutdent.length() > 2) {
students.add(sutdent);
return true;
}
return false;
}
// 编写一个名为“addFaculty”的布尔方法,该方法将一个字符串作为输入,表示一个教师姓名。
// 如果输入有效(教员长度>=3),该方法应返回真值,并将其添加到 ArrayList“教员”中。 如果输入无效,则该方法必须返回 false。
public boolean addFaculty(String faculty) {
if (faculty.length() >= 3) {
faculties.add(faculty);
}
return false;
}
// 编写一个名为“addEnrollment”的布尔方法,该方法采用两个字符串作为输入来表示学生姓名和教师姓名。
// 如果输入字符串‘name’和‘faculty’分别存在于‘students’和‘faculties’数组列表中,则该方法应使用上述格式将它们添加到‘enrollment’ArrayList并返回true;
// 否则,该方法必须返回 false。
public boolean addEnrollment(String studentName, String teacherName) {
if (students.contains(studentName) && faculties.contains(teacherName)) {
enrollment.add(studentName + "|" + teacherName);
return true;
}
return false;
}
// 编写一个名为 countStudentsPerFaculty 的方法,该方法接受一个字符串作为输入,表示教师姓名,并返回一个整数值,表示该教师的学生人数。
public int countStudentsPerFaculty(String teacherName) {
int count = 0;
for (String item : enrollment) {
if (item.split("|")[1].equals(teacherName)) {
++count;
}
}
return count;
}
}