- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java中类和类之间关系
类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。类与类之间存在以下关系:(1)泛化(Generalization)(2)关联(Association)(3)依赖(Dependency)(4)聚合(Aggregation)
UML图与应用代码例子:1.泛化(Generalization)[泛化]表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。[具体表现]父类 父类实例=new 子类()[UML图](图1.1)图1.1 Animal类与Tiger类,Dog类的泛化关系[代码表现]
class?Animal{} ??
class?Tiger?extends?Animal{} ??
public?class?Test ??
{ ??
????public?void?test() ??
????{ ??
????????Animal?a=new?Tiger(); ??
????} ??
}??
2.依赖(Dependency)[依赖]对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。[具体表现]依赖关系表现在局部变量,方法的参数,以及对静态方法的调用[现实例子]比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作[UML表现](图1.2)
图1.2 Person类与Screwdriver类的依赖关系[代码表现]
public?class?Person{ ??
????/**?拧螺丝?*/??
????public?void?screw(Screwdriver?screwdriver){ ??
????????screwdriver.screw(); ??
????} ??
}??
3.关联(Association)[关联]对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。[具体表现]关联关系是使用实例变量来实现[现实例子]比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司[UML图] (图1.3)图1.3 公司和员工的关联关系[代码表现]
public?class?Company{ ??
????private?Employee?employee; ??
????public?Employee?getEmployee(){ ??
????????return?employee; ??
????} ??
????public?void?setEmployee(Employee?employee){ ??
????????this.employee=employee; ??
????} ??
????//公司运作 ??
????public?void?run(){ ??
????????employee.startWorking(); ??
????} ??
}??
文档评论(0)