【威哥说】作为一个程序员,我们每天都在“搞”对象,额,“用”对象,感觉那个词都不太好,还是继续向下说,对象之间的关系有的是一对一的,也有一对多的(现实中有才好),他们之间到底是如何的关系,你是不是搞明白了呢?作为初学者,刚开始学习Java的同学一定要自己研究一下本文。

【广告】9月26日开班!!!

【正文】今天给大家讲解对象的一对一和一对多的关系,这个关系是针对初学者的一个讲解,可以帮助大家明确由实际生活转化到代码语句的逻辑。

首先,我们针对一个很常见的现实生活中的问题,咱们就看看最近的一个新闻:“北京现新款公租自行车,扫码出行”,这里估计又会引发一股骑车浪潮。

那么此处针对骑车事件,在现实生活中理解为:人蹬车,车就动起来了。那么把这个概念引申到咱们程序中时,就要理解为,动是车的方法,我们人是调用了车的滚动方法,车才跑起来的。同理:比如说人关门,现实生活中就是个关门动作,引申到程序中就是:关门时门才有的行为,人关门其实是在使用门的关闭动作,从而完成门的关闭。

体现到代码中来实现的话,首先我们需要一个门抽取出来的Door类:

class Door{ //定义一个关闭方法,门具有关闭方法 void close(){ System.out.println(“门被关闭了”); }; }

现在有个人要关门,那么这里我们就需要一个人的对象:

class Person{ /此时我们要去关闭门,所以我们需要一个门的对象,来让他自己关闭,所以此处我们封装一个Door door 类型的变量在本类中作为成员变量,然后再具体关门的动作里去使用门自己的关闭方法。此处这种关系就叫做对象的一对一关系/ Door door; Void closeDoor(){ door.close(); } }

那么为什么会有对象的一对一关系的建立,我们从几点来进行剖析:

1、低耦合

每个业务对象单独建立,避免了产生过多依赖,不利于维护

2、逻辑独立,任务分配明确

每个逻辑对象单独处理本类的业务逻辑,符合实际生活中的真实理念

3、符合面向对象思想

针对不同的逻辑对象抽取出来不同的类,封装本类中具有的独有方法实现。

那么有了对象的一对一关系,我们也大致可以猜到什么是对象的一对多关系了。可不是一个和多个发生关系哦。

如上同样是针对关门动作,这里我得关闭多个门的时候,也是人去关闭多个门,分别调用门的关闭方法:
那么如何去存储多个门呢?我们在程序中使用集合来进行存储,声明代码如下;

class Person{ /*此时我们使用集合存储所有数据,关闭时直接遍历集合进行挨个关闭。这里一个人对应多个门的关系我们称为一对多关系。 */ List<Door> door; Void closeDoor(){ For(int i = 0 ; i < door.size();i++){ door.get(i).close(); } } }

一对多关系说白了就是咱们在一个类中定义一个数据集合,一个对应多个数据,就叫一对多。初学者一定要迈过这个坎哦。