Java类之间的关系图_动力节点Java学院整理

2025-05-29 0 68

java之间的关系图

在java以及其他的面向对象设计模式中,之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。

1.依赖(dependence)Java类之间的关系图_动力节点Java学院整理

Java类之间的关系图_动力节点Java学院整理

依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:a当中使用了b,其中b是作为a的方法参数、方法中的局部变量、或者静态方法调用。上面的图例中:people依赖于book和food,book和food是作为中方法的参数形式出现在people中的。

代码样例:

?

1

2

3

4

5

6
public class people{

//book作为read方法的形参

public void read(book book){

system.out.println(“读的书是”+book.getname());

}

}

2.关联(association)Java类之间的关系图_动力节点Java学院整理Java类之间的关系图_动力节点Java学院整理Java类之间的关系图_动力节点Java学院整理

单向关联:

Java类之间的关系图_动力节点Java学院整理

双向关联:

Java类之间的关系图_动力节点Java学院整理

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系分为单向关联和双向关联。在java中,单向关联表现为:a当中使用了b,其中b是作为a的成员变量。双向关联表现为:a当中使用了b作为成员变量;同时b中也使用了a作为成员变量。

代码样例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
public class son{

//关联关系中作为成员变量的类一般会在类中赋值

father father = new father();

public void getgift(){

system.out.println(“从”+father.getname()+”获得礼物”);

}

}

public class father{

son son = new son();

public void givegift(){

system.out.println(“送给”+son.getname()+“礼物”);

}

}

3.聚合(aggregation)Java类之间的关系图_动力节点Java学院整理

Java类之间的关系图_动力节点Java学院整理

聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。

代码样例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
public class people{

car car;

house house;

//聚合关系中作为成员变量的类一般使用set方法赋值

public void setcar(car car){

this.car = car;

}

public void sethouse(house house){

this.house = house;

}

public void driver(){

system.out.println(“车的型号:”+car.gettype());

}

public void sleep(){

system.out.println(“我在房子里睡觉:”+house.getaddress());

}

}

4.组合(composition)Java类之间的关系图_动力节点Java学院整理

Java类之间的关系图_动力节点Java学院整理

相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。在下图的例子中,people与soul、body之间是组合关系,当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时,灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
public class people{

soul soul;

body body;

//组合关系中的成员变量一般会在构造方法中赋值

public people(soul soul, body body){

this.soul = soul;

this.body = body;

}

public void study(){

system.out.println(“学习要用灵魂”+soul.getname());

}

public void eat(){

system.out.println(“吃饭用身体:”+body.getname());

}

}

5.继承(generalization)Java类之间的关系图_动力节点Java学院整理

Java类之间的关系图_动力节点Java学院整理

继承表示(或者接口与接口)之间的父子关系。在java中,用关键字extends表示继承关系。uml图例中,继承关系用实线+空心箭头表示,箭头指向父

6.实现(implementation)Java类之间的关系图_动力节点Java学院整理

Java类之间的关系图_动力节点Java学院整理

表示一个实现一个或多个接口的方法。接口定义好操作的集合,由实现去完成接口的具体操作。在java中使用implements表示。uml图例中,实现关系用虚线+空心箭头表示,箭头指向接口。

在java中继承使用extends关键字,实现使用implements关键字,很直观。就不代码演示了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java类之间的关系图_动力节点Java学院整理 https://www.kuaiidc.com/115204.html

相关文章

发表评论
暂无评论