`

范例讲解:一对多关系

    博客分类:
  • 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...

    Hibernate(一对多and多对一)范例

    本范例主要探讨了Hibernate中的两种关联关系:一对多(One-to-Many)和多对一(Many-to-One)。这两种关联关系是数据库设计中常见的实体关系映射,理解并熟练掌握它们对于开发复杂的数据库驱动应用至关重要。 一对...

    ASP.NET程序开发范例宝典(光盘)----目录

    ### ASP.NET程序开发范例宝典(光盘)—— 目录解读与知识点解析 #### 一、ASP.NET基础知识 **1.1 ASP.NET简介** - **知识点:** - ASP.NET是一种服务器端脚本环境,它允许程序员使用C#等语言来构建动态网页。 ...

    建筑电气论文范文范例下载:运输繁忙站场铁路电气化改造的软横跨更换.docx

    在繁忙的铁路站场,如大新铁路编组站,由于天窗时间有限(即非运营时段),施工任务重,同时还需要应对多股道、复杂的节点布置和各种线路的共架问题,更换软横跨是一项极具挑战性的任务。 【详细说明】 1. **施工...

    Java编程模式与范例:基础开发技巧.rar

    3. **观察者模式**(Observer Pattern):定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。Java中的`java.util.Observable`和`java.util.Observer`接口...

    单片机程序范例讲解,,,,,初学者很好

    【单片机程序范例讲解】是针对初学者的一个教程,旨在帮助他们理解单片机的基本操作和外围模块的设计。这个教程涵盖了多个实用的模块,包括跑马灯、蜂鸣器、继电器、数码管、字符型液晶屏以及ULN2003芯片的使用。...

    C#经典范例50讲讲解了许多c#常用的例子

    《C#经典范例50讲》是一份针对C#编程语言的学习资源,它通过50个精心挑选的实例,全面地介绍了C#的基础知识和高级特性。这本教程不仅适用于初学者,也对有一定经验的开发者有很好的参考价值。在深入探讨之前,让我们...

    Java编程模式与范例:基础开发技巧

    6. **多线程**:Java内置对多线程的支持,通过Thread类和Runnable接口,开发者可以创建并发执行的任务。理解线程同步、互斥锁、条件变量等概念,有助于编写高效并发程序。 7. **设计模式**:设计模式是解决常见编程...

    C#经典范例50讲:C#经典范例50讲

    《C#经典范例50讲》是一本深入探讨C#编程语言的实践教程,它包含了一系列精心挑选的示例,旨在帮助读者更好地理解和掌握C#的核心概念与实用技巧。通过对这50个实例的学习,开发者可以提升在C#开发中的实际应用能力。...

    范例讲解1 甲机通过串口控制乙机LED闪烁_单片机_wrotey5n_源码

    在实际操作中,你可以参考范例讲解1 甲机通过串口控制乙机LED闪烁的源码,这将帮助你更好地理解上述理论知识,并动手实践。记住,动手实践是学习单片机的关键,多尝试,多调试,你会慢慢掌握这一技能。

    access2003 范例导航(光盘文件)

    7. **Chapter5**: 可能涵盖了表间关系的建立和管理,如一对一、一对多和多对多关系,以及如何利用关系进行数据的关联和操作。 8. **Chapter6**: 可能讲解了宏和模块的使用,宏用于自动化简单任务,而模块则允许编写...

    Visual C++ 程序开发范例宝典

    《Visual C++ 程序开发范例宝典》是一本深入探讨Visual C++编程实践的书籍,其01(01-24)部分涵盖了从基础到进阶的多个主题,旨在帮助开发者掌握Visual C++的核心技能。通过提供的压缩包子文件的文件名称列表,我们...

    C#范例开发大全源代码--刘丽霞版

    《C#范例开发大全源代码--刘丽霞版》是一部深入浅出的C#编程实践教程,由知名IT教育专家刘丽霞编著。该资料集包含了丰富的C#编程实例,旨在帮助开发者掌握C#语言的核心概念、特性和应用技巧。通过这份源代码,学习者...

    C#程序开发范例宝典第一章光盘2.rar

    《C#程序开发范例宝典》是一本深入讲解C#编程语言的书籍,由明日科技出版。本书致力于提供丰富的实例,帮助读者掌握C#编程的核心技术和实践应用。"第一章光盘2.rar"很可能是该书配套的示例代码或教学资源,用于辅助...

    C++ Qt5 范例开发大全,qt5开发及实例,QT

    总的来说,《C++ Qt5 范例开发大全》是一本全面覆盖Qt5开发的教程,它以实例为引导,通过深入浅出的讲解,帮助读者全面掌握Qt5框架,无论你是初涉GUI编程还是寻求进阶,都能从中受益匪浅。通过阅读和实践书中的例子...

    java范例开发大全

    《Java范例开发大全》是一本全面覆盖Java编程的实用指南,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言。这本书包含了从基础到高级的各类编程概念和技巧,通过丰富的实例代码来阐述理论知识,使学习过程...

    C#经典范例50讲 新手必看的例子

    《C#经典范例50讲》是一份针对C#初学者精心编纂的教程,由京华志和精华志联合出品,旨在帮助新手快速掌握C#编程语言的基础与实践应用。这个教程涵盖了大量的实例,从基础语法到高级特性,全方位地展示了C#在实际开发...

    msp430仿真软件的使用讲解及范例

    **msp430仿真软件的使用讲解及范例** 在嵌入式系统开发中,Texas Instruments(TI)的MSP430系列微控制器因其低功耗和高性能而备受青睐。为了有效地进行MSP430的应用开发,掌握一款强大的仿真软件是至关重要的。...

    亮剑.NET:Visual C#\data\程序范例

    这本书的核心是通过具体的程序范例来讲解C#编程的各种技术和技巧,旨在帮助读者深入理解.NET环境下的C#编程,并提升实际编程能力。 在.NET框架中,C#是一种强大的面向对象的编程语言,它被广泛应用于Windows桌面...

    c语言通用范例开发金典

    2. **指针与内存管理**:C语言的一大特色就是对内存的直接操作,这在其他高级语言中并不多见。书中详细讲解了指针的使用,包括指针的声明、赋值、解引用,以及如何通过指针进行动态内存分配和释放,帮助读者理解...

Global site tag (gtag.js) - Google Analytics