下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言入门教程(十):Java语言中的关联与依赖关系时间:2011-06-13 csdn博客 taomoon719-在开始本文的学习前,先总结一下已经学习过的内容。在前面9篇文章中,主要是介绍Java 类中的基本语法,是按照先概括,再具体的循序渐进的方式进行的。先介绍了 Java类的主 要组成部分:数据成员,方法成员,构造方法。然后对一些通用的知识点进行了较详细介 绍,如权限访问修饰符,包,静态修饰符,数据类型等。了解了这些通用的知识点后,对 于类的三个组成部分分别详细介绍,如介绍了类中各种数据的相关问题,介绍了构造方法 的相关问题,介绍了方法会使用到的操作符,流程控制,以及调用方法会使
2、用到的值传递 等知识点。在了解了这些以后,初学者应该可以比较清楚的理解一个独立的Java类,。但 是,在Java应用中,不可能只有一个Java类,而是会有很多Java类。这很多个Java类之间, 不可能是老死不相往来的,而会是彼此协作,完成复杂功能。所以,在了解了基本知识点 后,接下来,初学者应该着重学习Java语言中类与类的关系。在本文中,将使用简单的Java类,展示Java语言中类与类之间常见的两种关系:关联关系, 和依赖关系1、关联关系类A关联类B的意思是,如果实例化一个A类的对象,同时,会有一个B类的对象被实例 化。简言之,B作为A的属性存在。如下:class Aprivate B b
3、;class B2、依赖关系类A依赖类B的意思是,如果A的对象要完成某一操作,必须使用B的对象的某些操作来 帮忙,才能完成。简言之,B作为A的某个方法的方法参数存在。如下:class Apublic void f(B b)class B关联和依赖,是面向对象编程中,最常见的两种关系。假设有这样一个场景描述:某培训 中心提供免费培训课程,每门课程都有其名字以及原价。学员最多每人可以选择一门课程, 学员只要登记姓名,就可以选择一门课程来学习。通过分析这个简单场景,可以很容易分析出,有两种对象:学员,课程。也就是说,我们 应该创建两个类,Student,Course。Course类有两个属性,课程名
4、称和原始价格。如下: package com.csst.relation;public class Course private String title;private double price;public Course(String title, double price) super();this.title = title;this.price = price;public Course(String title) super();this.title = title;public Course() super();public String getTitle() return ti
5、tle;public void setTitle(String title) this.title = title;public double getPrice() return price;public void setPrice(double price) this.price = price;-然后创建另外一个类,Student,该类有一个学员姓名属性name,另外,因为每个学员可以 选择一门课程学习,那么就是说,每个Student对象,会有一个Course对象,即Course应 该作为Student的一个属性存在,即Student关联了 Course。那么,会有如下声明:package
6、 com.csst.relation;public class Student private String name;/1.关联关系:Student关联Courseprivate Course course;public Student(String name) super(); = name;/tbd继续分析,Student应该有1个行为,就是选择课程。要完成选择课程这个操作,必须得 接受一个课程的对象,也就是说,Student选课这个行为,必须依赖于Course的一个对象, 才能完成,所以Student和Course之间还存在依赖关系,继续完善上边代码:package com.csst.
7、relation;public class Student private String name;/1.关联关系:Student关联Courseprivate Course course;public Student(String name) super(); = name;/2.依赖关系:Student依赖Coursepublic void chooseCourse(Course course) this.course=course;public Course getCourse()return this.course;很多初学者,对于Course作为Student的一个属性,以及Cour
8、se类型作为方法参数,作 为方法返回值的类型,不能接受。总觉得只有String,int之类才是数据类型,而Course作 为一个类型存在,有些不伦不类。Java是面向对象的语言,任何一个类,就是一个类型, 都可以作为数据类型存在,我们自己声明的类也不例外。也就是说,如果能理解String作 为一个类型存在,就应该坦然接受Course作为一个类型存在,因为它们是一样的,都是一 个类型而已,只不过String是API中声明的,Course是我们自己声明的。学习本文内容后,初学者应该又上了一个台阶,就是不再仅仅关注某个Java类的语法,而 是从更高的角度去看待Java应用,去关注类与类的关系。总结一
9、下关联和依赖关系:1、关联和依赖都是面向对象编程中,常用的关系。2、关联表示has-a关系,如学生拥有一个课程,往往表现为B作为A的属性存在(A关联 B)3、依赖表示要做一件事情,离不开某个对象。往往表现为B作为A的方法参数存在(A依 赖B)4、当开始了解类与类的关系后,就需要对类型有更深入的了解。切记,任何类都可以作为 类型使用。在本文例子中,学生只能选择一门免费课程学习,如果培训中心加大优惠力度,每个学生 最多可以选择3门课程学习,应该如何维护这种关系哪?我们就不得不去了解Java语言中 的一些“数据容器,对象:数组、集合。本文来自编程入门网: HYPERLINK /Programming/Java/201
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度工程承包:墙体拆除项目合同条款3篇
- 2024年度网络平台运营与合作合同
- 2024年度企业资产重组与转让合同
- 2024年度企业合并及股权转让合同
- 2024年度办公楼物业管理合作协议
- 2024年度绿色农产品供应与销售合同3篇
- 2024年度标准砖市场供需合同
- 2024年度股权转让合同标的及交易条件详细阐述
- 物流信息技术与应用 课件 8.项目八 智能分析与计算技术
- 2024年度场地租赁咨询合同
- 光伏发电项目试验检测计划
- 国开(陕西)2024年秋《社会调查》形考作业1-4答案
- 人力资源许可证制度(服务流程、服务协议、收费标准、信息发布审查和投诉处理)
- 2024年舟山继续教育公需课考试题库
- 一年级拼音默写表
- 家长会课件:七年级家长会班主任优质课件
- 《思想道德与法治》 课件 第四章 明确价值要求 践行价值准则
- 乒乓球比赛分组对阵表(8人、16人、32人)
- 现代自然地理学理论第四章地理学的基本研究方法
- 工商局机器设备抵押合同
- 餐饮单位食品安全综合管理自查表(模版)
评论
0/150
提交评论