`

范例讲解:一对多关系

    博客分类:
  • JAVA
 
阅读更多

实例要求

使用类集可以表示出以下的关系:一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,此时就可以通过类集进行关系的表示。

实例主要采用的知识

1、类的设计

2、类集

一个学校有多个学生,那么学生的个数属于未知的,那么这样一来肯定无法用普通的对象数组表示。所以,必须通过类集表示。

学生类:

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.name + ";年龄:" + this.age ;
	}
}

 学校类

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.name ;
	}
}

 关系测试类

import java.util.Iterator ;
public class TestDemo{
	public static void main(String args[]){
		School sch = new School("清华大学") ;	// 定义学校
		Student s1 = new Student("张三",21) ;
		Student s2 = new Student("李四",22) ;
		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<Student> iter = sch.getAllStudents().iterator() ;
		while(iter.hasNext()){
			System.out.println("\t|- " + iter.next()) ;
		}
	}
}

 输出结果:

学校名称:清华大学
	|- 学生姓名:张三;年龄:21
	|- 学生姓名:李四;年龄:22
	|- 学生姓名:王五;年龄:23

 

 

分享到:
评论

相关推荐

    Java开发详解.zip

    031317_〖第13章:Java类集〗_范例讲解:一对多关系笔记.pdf 031318_〖第13章:Java类集〗_范例讲解:多对多关系笔记.pdf 031401_【第14章:枚举】_枚举的作用笔记.pdf 031402_【第14章:枚举】_Enum笔记.pdf 031403...

    Excel VBA 高效办工范例应用 韩泽坤朱瑞亮 示例文件

    很多读者在对Excel入门后发现,在实际工作中真正所需要的Excel应用 远不是入门书籍所讲述得那么简单,必须掌握Excel函数、宏与VBA等高级工 具才可以。但在进一步的学习中却发现很难在市面上找到一本专门介绍 ...

    C#5.0语法范例

    本书是一本针对C#5.0的语法进行讲解和介绍的书籍。在章节安排上共分为二十三章。比较全面地介绍了C#5.0语法的各个语法要点。内容上包括程序基础、基本运算符、语句、类型转换、类、多态、命名空间、接口、访问性约束...

    AutoCAD 2012 机械设计绘图 基础入门与范例精通

    书中给出了大量来自机械行业实践应用的典型案例,所讲解的内容是一名优秀的机械cad设计师必备的专业知识。通过对《AutoCAD 2012机械设计绘图基础入门与范例精通》的学习,读者可以掌握机械cad设计师岗位的专业技能,...

    教学设计方案范例.doc

    教学设计方案范例 教学内容:网络拓扑结构及其绘制 一、教学目标 1. 能使用VISIO软件实行网络拓扑结构的绘制 2. 能判断小型局域网的网络拓扑结构 3. 能根据网络拓扑结构特点和组网条件实行网络结构的选型 1.本节的...

    java web 视频、电子书、源码(李兴华老师出版)

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    李兴华Java Web开发实战经典(高清版) Part2

    6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解...

    Effective C++

    Effective C++(编程的50个细节)着重讲解了编写C++程序应该注意的50个细节问题,书中的每一条准则描述了一个编写出更好的C++的方式,每一个条款的背后都有具体范例支持,书中讲的都是C++的编程技巧和注意事项,很多都...

    Google Android SDK开发范例大全 源码

    谷歌 Android 讲的很清楚,看得很模糊,这本书让你可以对Adnroid 看的很全面。抢占Android 市场,可能就在某个行业的将来抢占了一定的地位。 * 国内第一本全面介绍Android SDK的简体中文图书,目前为止最详细完整的...

    数据结构与算法-Java语言版

    Drozdek强调了数据结构和算法之间的关系,分析了算法的复杂性,还讲解了增强封装和分解的信息隐藏原理,对递归方法和递归进行了清晰、详尽的阐述。 本书第1版取材新颖,被很多学校采用为教学参考书。第2版在延续了...

    《VisualC++.NET编程实例》作者: 黄金双 / 汤蕾 / 苏峰 出版年: 2004年

    本书内容丰富,范例典型,不仅是国内广大Visual C++.NET初级开发人员很好的入门指导书,对具有丰富程序开发经验的人员同样具有参考价值。 本书所有实例程序均在Visual C++.NET环境下调试通过,配套光盘中包含全部...

    色彩构成( 胡心怡 编著)

    而《色彩构成》一书编写的目的不仅是让学生了解这些色彩知识和理论,而且通过对本书的学习学会发现色彩、使用色彩和创造色彩。本书有3个特点:  1.详细说明色彩构成的内容,用大量的图片讲解如何搭配色彩。  2.将...

Global site tag (gtag.js) - Google Analytics