import java.util.List;
import java.util.ArrayList;
public class School{
private String name;
private List<Student> allStudents; //泛型是多个学生
public School(){ //不管学校有没有名字,都有多个学生
this.allStudents=new ArrayList<Student>();
}
public School(String name){
this(); //调用无参构造方法
this.setName(name);
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public List<Student> getAllStudents(){ //得到所有学生
return this.allStudents;
}
public String toString(){
return "学校:"+this.getName();
}
};
public class Student{
private String name;
private int age;
private School school; //一个学生属于一个学校
public Student(String name,int age){
this.setName(name);
this.setAge(age);
}
public void setSchool(School school){
this.school=school;
}
public School getSchool(){
return this.school;
}
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String toString(){
return "姓名:"+this.getName()+";年龄:"+this.getAge();
}
};
//主方法测试
import java.util.Iterator;
public class TestDemo{
public static void main(String args[]){
School sch=new School("清华大学"); //定义学校
Student s1=new Student("张三",22); //定义学生
Student s2=new Student("李四",21);
Student s3=new Student("王五",23);
sch.getAllStudents().add(s1); //一个学校多个学生,增加多个学生
sch.getAllStudents().add(s2);
sch.getAllStudents().add(s3);
s1.setSchool(sch); //多个学生,同一个学校
s2.setSchool(sch);
s3.setSchool(sch);
System.out.println(sch); //输出学校
//输出学生,肯定使用Iterator标准输出,sch.getAllStudents()返回的是List
Iterator<Student> iter=sch.getAllStudents().iterator();
Iterator<Student> iter2=sch.getAllStudents().iterator();
while(iter.hasNext()){
System.out.println("\t|-"+iter.next()); //从学校找到学生
}
System.out.println("学生信息:");
while(iter2.hasNext()){
System.out.println("\t|-"+iter2.next().getSchool().getName()); //从学生找到学校
}
}
};