【威哥说】做为一个程序员,咱们天天都在“搞”对象,额,“用”对象,感受那个词都不太好,仍是继续向下说,对象之间的关系有的是一对一的,也有一对多的(现实中有才好),他们之间究竟是如何的关系,你是否是搞明白了呢?做为初学者,刚开始学习Java的同窗必定要本身研究一下本文。程序员
【广告】9月26日开班!!!学习
【正文】今天给你们讲解对象的一对一和一对多的关系,这个关系是针对初学者的一个讲解,能够帮助你们明确由实际生活转化到代码语句的逻辑。code
首先,咱们针对一个很常见的现实生活中的问题,我们就看看最近的一个新闻:“北京现新款公租自行车,扫码出行”,这里估计又会引起一股骑车浪潮。 那么此处针对骑车事件,在现实生活中理解为:人蹬车,车就动起来了。那么把这个概念引伸到我们程序中时,就要理解为,动是车的方法,咱们人是调用了车的滚动方法,车才跑起来的。同理:好比说人关门,现实生活中就是个关门动做,引伸到程序中就是:关门时门才有的行为,人关门实际上是在使用门的关闭动做,从而完成门的关闭。 体现到代码中来实现的话,首先咱们须要一个门抽取出来的Door类:
class Door{ //定义一个关闭方法,门具备关闭方法 void close(){ System.out.println(“门被关闭了”); }; }对象
如今有我的要关门,那么这里咱们就须要一我的的对象:
class Person{ /此时咱们要去关闭门,因此咱们须要一个门的对象,来让他本身关闭,因此此处咱们封装一个Door door 类型的变量在本类中做为成员变量,而后再具体关门的动做里去使用门本身的关闭方法。此处这种关系就叫作对象的一对一关系/ Door door; Void closeDoor(){ door.close(); } }事件
那么为何会有对象的一对一关系的创建,咱们从几点来进行剖析: 一、低耦合 每一个业务对象单独创建,避免了产生过多依赖,不利于维护 二、逻辑独立,任务分配明确 每一个逻辑对象单独处理本类的业务逻辑,符合实际生活中的真实理念 三、符合面向对象思想 针对不一样的逻辑对象抽取出来不一样的类,封装本类中具备的独有方法实现。 那么有了对象的一对一关系,咱们也大体能够猜到什么是对象的一对多关系了。可不是一个和多个发生关系哦。 如上一样是针对关门动做,这里我得关闭多个门的时候,也是人去关闭多个门,分别调用门的关闭方法: 那么如何去存储多个门呢?咱们在程序中使用集合来进行存储,声明代码以下;
class Person{ /*此时咱们使用集合存储全部数据,关闭时直接遍历集合进行挨个关闭。这里一我的对应多个门的关系咱们称为一对多关系。 */ List<Door> door; Void closeDoor(){ For(int i = 0 ; i < door.size();i++){ door.get(i).close(); } } }get
一对多关系说白了就是我们在一个类中定义一个数据集合,一个对应多个数据,就叫一对多。初学者必定要迈过这个坎哦。