Java初学者疑难杂症之:一对一和一对多的关系
2019独角兽企业重金招聘Python工程师标准>>>
【威哥说】作为一个程序员,我们每天都在“搞”对象,额,“用”对象,感觉那个词都不太好,还是继续向下说,对象之间的关系有的是一对一的,也有一对多的(现实中有才好),他们之间到底是如何的关系,你是不是搞明白了呢?作为初学者,刚开始学习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(); } } }
一对多关系说白了就是咱们在一个类中定义一个数据集合,一个对应多个数据,就叫一对多。初学者一定要迈过这个坎哦。
转载于:https://my.oschina.net/moliying/blog/744084
Java初学者疑难杂症之:一对一和一对多的关系相关推荐
- java一对一关系_Java初学者疑难杂症之:一对一和一对多的关系
[威哥说]作为一个程序员,我们每天都在"搞"对象,额,"用"对象,感觉那个词都不太好,还是继续向下说,对象之间的关系有的是一对一的,也有一对多的(现实中有才好) ...
- MyBatis中resuleMap一对一和一对多属性字段映射
处理属性和字段不一致 通过resultMap 当Java中实体类属性和数据库字段不一致的时候,我们可以通过resultMap进行映射,例如我们要查询一个user表中的用户的全部信息,在Java中属性是 ...
- MyBatis如何实现多表查询(一对一、一对多)
Mybatis实现多表的查询分为以下两种: 方式一:sqlMapper配置文件 一对一:在resultMap标签中使用 association 标签 一对多:在resultMap 标签中使用colle ...
- 【摸鱼神器】基于SSM风格的Java源代码生成器 单表生成 一对一、一对多、多对多连接查询生成
一.序言 UCode Cms 是一款Maven版的Java源代码生成器,是快速构建项目的利器.代码生成器模块属于可拆卸模块,即按需引入.代码生成器生成SSM(Spring.SpringBoot.Myb ...
- 06_一对一和一对多
一. 一对一关系 1. 一对一的实体类 2. 一对一映射配置 二. 一对多关系 1. 一对多的实体类 2. 一对多映射配置 二. 一对一和一对多关系例子 1. 新建一个名为AssociationCol ...
- mybatis入门(六)----高级映射(一对一,一对多,多对多)
阅读目录 一:订单商品数据模型 二.一对一查询 三.一对多查询 四.多对多查询 回到顶部 一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: View Code 测试数据代码: View C ...
- mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析
推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...
- django orm级联_Django数据表关联关系映射(一对一、一对多、多对多)
我们知道涉及到数据表之间的对应关系就会想到一对一.一对多.多对多,在学习 MySQL 数据库时表关系设计是需要重点掌握的知识.Django 中定义了三种关系类型的字段用来描述数据库表的关联关系:一对多 ...
- mybatis 一对一与一对多collection和association的使用
在mybatis如何进行一对一.一对多的多表查询呢?这里用一个简单的例子说明. 一.一对一 1.association association通常用来映射一对一的关系,例如,有个类user,对应的实体 ...
最新文章
- 一文详解C++文件读写(FileStorage、txt)
- 执行后可以查看python版本的是-【单选题】执行后可以查看Python的版本的是
- 数据中心业界迎来机器学习工具
- c++享元模式flyweight
- 如何获得C4C里某个code字段对应的描述信息
- Dapr牵手.NET学习笔记:Actor一个场景
- 【深圳】掌通宝科技有限公司技术总监(兼架构师),约吗
- 每天进步一点点《ML - 异常点检测》
- 魔改部署自己专属的合成大西瓜(一:运行篇)
- android播放视频功能,android surfaceView实现播放视频功能
- 配置8086汇编环境
- pt和字号的对应关系
- PHP 梯形图,初学者必掌握plc梯形图解释
- Python3 字符串小练习
- python 模拟键盘鼠标输入_Python模拟键盘输入和鼠标操作
- 0201电脑桌的制作过程(使用3DsMAX2016)
- 数据结构(递归及应用)
- honor荣耀为什么要研发高端?
- apmserv搭建是php环境,APMServ5.2.6一键搭建php等服务器环境视频教程
- CUMTCTF2020岁末赛wp