java基础学习总结之基本特征,最开始学习的时候,是形而上的理解,用了3年多,再回头看,理解起来颇为顺理成章

语言学习大概就是这样一种规律,学习,不甚解,应用,应用,渐深入人心,回头一看,恍然一悟

  最近总结设计模式的六大原则,感觉颇有联系,先列出6大原则:

  迪米特法则,里氏替换原则,依赖倒置,接口隔离,合成聚合,开闭原则

第一个,抽象

  抽象并非java语言独有。一句话:忽略无关细节,对事物的行为和属性做抽象,反映为类中的域和方法

第二个,封装

  隐藏内部细节,只提供与外界通信的接口

  这个特征与迪米特法则有些联系,迪米特法则要求实体间发生作用要尽量少,使得各个类相互独立,放大来说,各个系

统能相互独立,干自己的事,同事兼容的向外提供服务,笔者觉得封装这个词用来形容小服务,微服务也挺适合

第三个、继承

  一个类派生出子类,称为继承,派生类继承基类的方法和实例变量,并可以覆盖或增加新的方法

  这里就产生了子类父类的概念。我们结合第一个特征抽象,可以看到依赖倒置的原则就是这么来的,抽象不能依赖于

具体而是让具体依赖于抽象。

  如果将继承的概念广泛化,那么实现接口也会产生子类和父类,开闭原则要求内部对扩展开放,对修改关闭,与继承有

很大的联系

  里氏替换原则更简单的理解是,子类能出现的地方,父类一定也能出现并代替,在编程中其实很多地方都体现了,最常

见的 Map<xxx,xxx> map = new HashMap<>(); List<> list = new ArrayList<>(); 并非说一定要这样写,笔者开始用的时候其实

也不太理解为啥要这么写,直到后来看到书中作者的描述

  合成和聚合原则,其实更好的词是组合和聚合,现在很多概念的界限其实都不是那么标准或严格了,我们将继承和持有,

一般是持有有限,持有就是持有一个实例

  总之,一个继承诞生了无数的情形,开发者从中得到了很多经验的做法和原则,这个只能在设计和编码中慢慢体会

第四个、多态

  父类的方法在子类中表现出不同的行为。有多态,那就有继承,有重写,有父类引用指向子类对象

  多态例子太多了,做web开发的见得不要太多。但是,但是,利用多态衍生出的设计模式才是精髓,整个23种设计模式

到处都有体现,多态的光芒,无处不在,我们的里氏替换原则就是直接的体现。

  java面向对象的基本特征其实没啥说的,难的是从中衍生的各种应用,譬如继承关系的类的加载顺序,设计模式,以及

我们的数据库表设计(抽象和封装能力),这些后面的篇章先预留着做总结。

  

java面向对象特征 — 一句话概括的更多相关文章

  1. java.面向对象特征

    面向对象特征: 封装,多态,继承 面向对象思想: 封装,继承,多态,接口

  2. Java面向对象特征之封装

    package practice;/** * @功能 创建动物类,对动物的属性进行封装 * @author square 凉 * */public class Animal { /**  * 动物姓名 ...

  3. JAVA面向对象特征详解

    1. 封装 封装性的产生目的:保护某些属性和方法不被外部所看见. 封装的实现:为属性和方法进行封装是通过关键字private声明的:实现该属性的set和get方法,为外部所访问 该公开的公开,该私有的 ...

  4. Java面向对象的三大特征

    Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...

  5. Java 面向对象的基本特征

    前言:  在刚开始接触Java的时候,那时候面对Java面向对象的几大特征一直理解的不是很理解,借着空闲时间在这里整理一下,同时在加深一下印象. 一.封装: Java面向对象的特征之封装,所谓的封装就 ...

  6. 比较分析C++、Java、Python、R语言的面向对象特征,这些特征如何实现的?有什么相同点?

    一门课的课后题答案,在这里备份一下: 面向对象程序设计语言 –  比较分析C++.Java.Python.R语言的面向对象特征,这些特征如何实现的?有什么相同点? C++ 语言的面向对象特征: 对象模 ...

  7. 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图

    面向对象思想概述.开发设计特征 1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一 ...

  8. Java面向对象的三个特征

    首先,Java面向对象的三大特征: 三大特征: ▪ 封装 ▪ 继承 ▪ 多态 首先面向对象的第一个特性 封装 : 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操 ...

  9. Java面向对象设计主要有三大特征:封装性、继承性和多态性

    Java面向对象设计主要有三大特征:封装性.继承性和多态性 一  封装性   1.1  概念:它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访 ...

随机推荐

  1. drools语法介绍

    这里没有翻译http://docs.jboss.org/drools/release/6.4.0.Final/drools-docs/html_single/index.html上的内容 而是参考了网 ...

  2. js获取table checkbox选中行的值.mdjs获取table checkbox选中行的

    <!DOCTYPE html> <html> <head> <script src="https://cdn.staticfile.org/jque ...

  3. 3、docker 容器管理

    Docker容器相对于OpenStack的云主机实例,虽然他们本质上不同.我们需要基于镜像来创建容器.容器是独立运行的一个或一组应用,以及它们的运行环境.对应的,虚拟机可以理解为模拟运行的一整套操作系 ...

  4. UVALive7461 - Separating Pebbles 判断两个凸包相交

    //UVALive7461 - Separating Pebbles 判断两个凸包相交 #include <bits/stdc++.h> using namespace std; #def ...

  5. 深度探索C++对象模型之第一章:关于对象之C++对象模型

    一.C和C++对比: C语言的Point3d: 数据成员定义在结构体之内,存在一组各个以功能为导向的函数中,共同处理外部的数据. typedef struct point3d { float x; f ...

  6. Redis本地集群搭建(5版本以上)

    Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1.下载安装Redis的安装包 2.复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 ...

  7. scala中Array简单实用

    /** * 在scala中数组的使用 * 和java很类似,初始化后,长度就固定了,而且元素全部根据其类型初始化 * */ object arrayUse { def main(args: Array ...

  8. 10月23日——作业1——while循环练习

    while循环'''此类编程题,注意带进去试一试1.九九乘法表row=1while row<=9: col=1 while col<=row: print(col,"*" ...

  9. thinkphp 标签嵌套

    模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套. 直线电机价格 系统内置的标签中,volist.switch.if.elseif.else.foreach.compare(包括所有的比 ...

  10. 在centos 6.9 x64下安装code::blocks步骤

    1.yum groupinstall "Development tools" 2.yum install gtk2* 3.安装wxWidgets 下载地址:https://www. ...