java面向对象特征 — 一句话概括
java基础学习总结之基本特征,最开始学习的时候,是形而上的理解,用了3年多,再回头看,理解起来颇为顺理成章
语言学习大概就是这样一种规律,学习,不甚解,应用,应用,渐深入人心,回头一看,恍然一悟
最近总结设计模式的六大原则,感觉颇有联系,先列出6大原则:
迪米特法则,里氏替换原则,依赖倒置,接口隔离,合成聚合,开闭原则
第一个,抽象
抽象并非java语言独有。一句话:忽略无关细节,对事物的行为和属性做抽象,反映为类中的域和方法
第二个,封装
隐藏内部细节,只提供与外界通信的接口。
这个特征与迪米特法则有些联系,迪米特法则要求实体间发生作用要尽量少,使得各个类相互独立,放大来说,各个系
统能相互独立,干自己的事,同事兼容的向外提供服务,笔者觉得封装这个词用来形容小服务,微服务也挺适合
第三个、继承
一个类派生出子类,称为继承,派生类继承基类的方法和实例变量,并可以覆盖或增加新的方法
这里就产生了子类父类的概念。我们结合第一个特征抽象,可以看到依赖倒置的原则就是这么来的,抽象不能依赖于
具体而是让具体依赖于抽象。
如果将继承的概念广泛化,那么实现接口也会产生子类和父类,开闭原则要求内部对扩展开放,对修改关闭,与继承有
很大的联系
里氏替换原则更简单的理解是,子类能出现的地方,父类一定也能出现并代替,在编程中其实很多地方都体现了,最常
见的 Map<xxx,xxx> map = new HashMap<>(); List<> list = new ArrayList<>(); 并非说一定要这样写,笔者开始用的时候其实
也不太理解为啥要这么写,直到后来看到书中作者的描述
合成和聚合原则,其实更好的词是组合和聚合,现在很多概念的界限其实都不是那么标准或严格了,我们将继承和持有,
一般是持有有限,持有就是持有一个实例
总之,一个继承诞生了无数的情形,开发者从中得到了很多经验的做法和原则,这个只能在设计和编码中慢慢体会
第四个、多态
父类的方法在子类中表现出不同的行为。有多态,那就有继承,有重写,有父类引用指向子类对象
多态例子太多了,做web开发的见得不要太多。但是,但是,利用多态衍生出的设计模式才是精髓,整个23种设计模式
到处都有体现,多态的光芒,无处不在,我们的里氏替换原则就是直接的体现。
java面向对象的基本特征其实没啥说的,难的是从中衍生的各种应用,譬如继承关系的类的加载顺序,设计模式,以及
我们的数据库表设计(抽象和封装能力),这些后面的篇章先预留着做总结。
java面向对象特征 — 一句话概括的更多相关文章
- java.面向对象特征
面向对象特征: 封装,多态,继承 面向对象思想: 封装,继承,多态,接口
- Java面向对象特征之封装
package practice;/** * @功能 创建动物类,对动物的属性进行封装 * @author square 凉 * */public class Animal { /** * 动物姓名 ...
- JAVA面向对象特征详解
1. 封装 封装性的产生目的:保护某些属性和方法不被外部所看见. 封装的实现:为属性和方法进行封装是通过关键字private声明的:实现该属性的set和get方法,为外部所访问 该公开的公开,该私有的 ...
- Java面向对象的三大特征
Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...
- Java 面向对象的基本特征
前言: 在刚开始接触Java的时候,那时候面对Java面向对象的几大特征一直理解的不是很理解,借着空闲时间在这里整理一下,同时在加深一下印象. 一.封装: Java面向对象的特征之封装,所谓的封装就 ...
- 比较分析C++、Java、Python、R语言的面向对象特征,这些特征如何实现的?有什么相同点?
一门课的课后题答案,在这里备份一下: 面向对象程序设计语言 – 比较分析C++.Java.Python.R语言的面向对象特征,这些特征如何实现的?有什么相同点? C++ 语言的面向对象特征: 对象模 ...
- 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图
面向对象思想概述.开发设计特征 1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一 ...
- Java面向对象的三个特征
首先,Java面向对象的三大特征: 三大特征: ▪ 封装 ▪ 继承 ▪ 多态 首先面向对象的第一个特性 封装 : 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操 ...
- Java面向对象设计主要有三大特征:封装性、继承性和多态性
Java面向对象设计主要有三大特征:封装性.继承性和多态性 一 封装性 1.1 概念:它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访 ...
随机推荐
- 用CSS做导航菜单的4个理由
导航结构在网站设计中是起到决定性作用的,导航菜单/栏常常通过颜色.排版.形状和一些图片来帮助网站创造更好的视觉和感受,它是网页设计的关键元素.虽然网站导航菜单的外观是网页设计中关系到整个设计成败与否的 ...
- java实现数字转中文大写
package cn.aikang.ChineseC; import java.util.Scanner; /** * @Description: TODO(这里用一句话描述这个类的作用) * @Au ...
- 4、Docker网络访问
现在我们已经可以熟练的使用docker命令操作镜像和容器,并学会了如何进入到容器中去,那么实际的工作中,我们通常是在Docker中部署服务,我们需要在外部通过IP和端口进行访问的,那么如何访问到Doc ...
- 两个table合并
1.两个一样的table合并用Merge函数即可合并(但要求table要有主键id) DataTable1.Merge(DataTable2); 2.没写完,以后继续补充(只有经过笔者验证,能用的才会 ...
- MySQL - 锁等待超时与information_schema的三个表
引用地址:https://blog.csdn.net/J080624/article/details/80596958 回顾一下生产中的一次MySQL异常,Cause: java.sql.SQLExc ...
- 【JZOJ4474】【luoguP4071】排列计数
description 求有多少种长度为 n 的序列 A,满足以下条件: (1)1 ~ n 这 n 个数在序列中各出现了一次 (2)若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 ...
- Controller 获取前端数据
默认支持的类型 在controller的方法的形参中直接定义上面这些类型的参数,springmvc会自动绑定. HttpServletRequest对象 HttpServletResponse对象 H ...
- Orika JavaBean映射工具探秘
Orika是一个简单.快速的JavaBean拷贝框架,Orika使用字节代码生成来创建具有最小开销的快速映射器. 关于: 作为开发人员,我们必须为业务问题提供解决方案,我们希望利用我们的时间来做真正重 ...
- JMeter 返回Json数据提取方法
JMeter中,对response返回JSON格式的数据进行处理,格式如下: { "code":2000, "message":"success&qu ...
- AutoLayout(自动布局)入门
这是WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里.如果您是首次来到本站,也许您会有兴趣通过RSS的方式订阅本站. AutoLayout在去年的WWDC上被引入Cocoa,而在今年的WW ...