OOP导论系列---抽象过程
OOP导论系列---抽象过程
所有编程语言都提供抽象机制。可以认为,人们所能解决的问题的复杂性直接取决于抽象的类型和质量。所谓“类型”是指“所抽象的是什么?”你可以抽取待求解问题的任何概念化构件,如:天空、海洋、山脉、草地、建筑、树木、银行、出纳、取款、交易、服务、几何、圆形、三角形、长方形、正方形等。。。
面向对象程序设计的特性:
- 万物皆为对象。将对象视为奇特的变量,她可以存储数据(域:对象里的字段),除此之外你还可以要求她在自身上执行操作(行为:对象的方法)。
- 程序是对象的集合,她们通过发送消息来告知彼此所要做的。要想请求一个对象,就必须对该对象发送一条消息,可以想象为对某个对象和方法的调用请求。
- 每个对象都有自己的由其她对象所构成的存储。换句话说,你可以通过创建包含现有对象的包的方式来创建新类型对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。
- 每个对象都拥有其类型。“每个对象都是某个类(class)的一个实例(instance)”,这里“类”就是“类型”的同义词。每个类最重要的区别于其她类的特性就是“可以发送什么样的消息给她”。
- 某一特定类型的所有对象都可以接收同样的消息。因为“圆形”类型的对象同时也是“几何”类型的对象,所以一个“圆形”对象必定能接受发送给“几何”对象的消息。这意味着可以编写与“几何”交互并自动处理所有与几何形性质相关的事物的代码。这种可替代性(substitutability)是OOP中最强有力的概念之一。
案例展示:

抽取构件:
- Geometry:几何
- Square:正方形
- Rectangle:长方形
- Triangle:三角形
说明:2,3,4都是抽象类型,都有自己的行为(周长、面积),并且都属于几何系列。
客户端程序员使用工具:
解说:抽象了客户端程序员使用工具构件,工具构件里的行为是静态的,方便调用,并持有对“几何”构件的引用,客户端程序员可以给此工具传入“正方形、长方形、三角形”等构件,从而调用相关构件的行为。
总结:上面的概念和内容是Java核心中的核心思想,大家要不断的反思,反思,再反思,争取悟出里面的全部思想,并转化为自己的“内功”,为以后设计或研读开源框架源码打下坚实基础!
如果同学们有疑问或者想获取更多资源,可以加“张无忌”老师微信(17091005779),找老师获取。
OOP导论系列---抽象过程的更多相关文章
- Spring源深和六系列 CreateBean过程
blog宗旨:用图说话. 这一章的图讲述了createBean的过程.到这里spring容器就能够完毕IOC的整个过程,拿到我们须要的对象. 下一章我们接着来看一看AOP完毕的过程. 附:文件夹 Sp ...
- Java设计模式系列-抽象工厂模式
原创文章,转载请标注出处:https://www.cnblogs.com/V1haoge/p/10755412.html 一.概述 抽象工厂模式是对工厂方法模式的再升级,但是二者面对的场景稍显差别. ...
- Java九阳真经论述及愿景
Java九阳真经论述及愿景 “他强由他强,清风拂山冈,他横由他横,明月照大江.” <倚天屠龙记>中张无忌被玄冥二老的玄冥神掌打伤后,体寒难耐,到处求解决之法.一次被韦蝠王打下山谷后,偶遇一 ...
- Java编程思想 学习笔记1
一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆 ...
- SICP— 第一章 构造过程抽象
SICP Structure And Interpretation Of Computer Programs 中文第2版 分两部分 S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过 ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- 《Java编程思想》读书笔记-对象导论
计算机是头脑延伸的工具,是一种不同类型的表达媒体.本文以背景性的和补充性的材料,介绍包括开发方法概述在内的面向对象程序设计(Object-oriented Programming,OOP)的基本概念. ...
- LUA OOP编程实现方法
lua原生不支持OOP特性 确实如此, 同时可以采用其它lua代码的方式实现OOP的特性. OOP四大特性 抽象 封装 继承 多态 http://www.cnblogs.com/xiaosongluf ...
- iOS 抽象工厂模式
iOS 抽象工厂模式 什么是抽象工厂模式 简单了解一下 按照惯例,我们先了解一下什么是抽象工厂模式.抽象工厂模式和工厂方法模式很相似,但是抽象工厂模式将抽象发挥的更加极致,是三种工厂模式中最抽象的一种 ...
随机推荐
- 【转】C# GDAL 配置
共生成9个dll,如下图: 1.在程序中添加*_csharp.dll四个文件的引用: 2.将剩余的五个文件复制到程序的Debug文件夹中:(如果不复制这五个文件就会出现类似“OSGeo.GDAL.Gd ...
- TE7下的创建组件AxHost失败
问题比较诡异.时好时坏的.网上的办法试过了,没用. 最后的解决办法是,把项目属性切换到Any CPU,然后勾选 32位优先,切换到界面设计状态,拖放控件,OK:运行,会出现红色提示:再次切换到项目属性 ...
- day 15
1.input标签默认内容 Title <input value="默认内容"/> <hr /> <textarea>默认内容</text ...
- HTML头部声明文件类型
在你每一个页面的顶端,你需要文件声明.是的,必须. 如果不指定文件类型,你的HTML不是合法的HTML,并且大部分浏览器会用“怪癖模式(quirks mode)”来处理页面,这意味着浏览器认为你自己也 ...
- SQL Server ->>监控和管理Tempdb
Tempdb作为一个公共数据库,存储着一些临时的数据.有些是用户自己创建的,有些是SQL Server自己创建的.Tempdb空间被使用的一些常见场景有 用户自定义:临时表和表变量.游标. SQL S ...
- 批量备份mysql数据库(shell编程)
#!/bin/bash DBPATH=/mysqlbak MYUSER=root MYPASS= SOCKET=/var/lib/mysql/mysql.sock MYCMD="mysql ...
- February 4 2017 Week 5 Saturday
It takes a great man to be a good listener. 懂得倾听的人才是真的了不起. Don't make comments before you have learn ...
- vs2017 git到oschina 方法
vs2017中git基本使用方法: 1.开发环境vs2017,git服务器使用git.oschina.net 2.打开vs2017 创建项目 如果已有项目则: 3.完成后在文件前面会有小锁的图标,说明 ...
- IBM MQ介绍
转自:http://hi.baidu.com/lubezhang/blog/item/bd308b3b7ecce3ec14cecb4f.html IBM MQ(IBM Message Queue)是I ...
- PAT-GPLT L3-017 森森快递(贪心 + 线段树)
链接: https://www.patest.cn/contests/gplt/L3-017 题意: 给出直线上的N个顶点,(N-1)条边的限制值(每对相邻的顶点之间都有一条边),以及Q个区间(给出起 ...