Java编程思想读书笔记 第一章 对象导论
抽象过程
纯粹的面向对象程序设计方式:
- 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作
- 程序是对象的集合: 通过发送消息告诉彼此要做的
- 每个对象都有自己的由其它对象构成的存储:可以在程序中构建复杂的体系,并将复杂性隐藏在对象之后
- 每个对象都是某个类的对应实例:类的特性在于可以发送什么样的消息给它
- 某一特定类型的对象可以接收同样的消息
访问控制:隐藏实现细节
类创建者:创建新数据类型的程序员
客户端程序员:使用各种类以实现快速应用开发
- 向客户端程序员隐藏实现细节
- 库设计者可以改变设计方式而不影响客户端程序员
accesser specifier
- public
- private
- protected: 继承的类可访问
- default: 包访问权限,类可以访问在同一个包中的其它类成员
继承
is-a:导出类只覆盖基类的方法。
is-like-a:导出类含新的接口元素。
- 静态绑定:编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要执行的代码的绝对地址
- 动态绑定:当向对象发送消息时,被调用的代码直到运行时才能确定。编译器确保调用方法的存在,并对调用参数和返回值执行类型检查(无法提供该保证的语言是弱类型的),但是并不知道将被执行的确切代码。Java默认动态绑定,更好的支持多态。
Java编程思想读书笔记 第一章 对象导论的更多相关文章
- 《Java编程思想》笔记 第一章 对象导论
1.抽象过程 Q:什么是对象??? A: 1) 万物皆对象 --- 对象具有状态,行为和标识 2)程序是对象的集合,他们通过发送消息来告诉彼此要做的 3)通过创建包含现有对象的包的方式来创建新类型 ...
- Java编程思想 4th 第1章 对象导论
所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对 ...
- think in java 第四版读书笔记 第一章对象导论
很久没有碰过java了,为了项目需要以及以后找工作,还是有必要将think in java通读一遍.欢迎大家一起讨论学习 1.1抽象过程 面向对象语言的5个特性: 1.万物皆对象 任何事物都可以抽象为 ...
- JAVA编程思想读书笔记(四)--对象的克隆
接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- JAVA编程思想读书笔记(五)--多线程
接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...
- JAVA编程思想读书笔记(二)--容器
接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- Java编程思想读书笔记
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- HDU 3480 Division DP斜率优化
解题思路 第一步显然是将原数组排序嘛--然后分成一些不相交的子集,这样显然最小.重点是怎么分. 首先,我们写出一个最暴力的\(DP\): 我们令$F[ i ][ j ] $ 为到第\(i\)位,分成\ ...
- Gradle项目构建工具学习笔记(持续更新中。。。)
1.gradle的安装 1)从官网下载gradle,然后解压 2)在系统环境变量新建GRADLE_HOME 3)将%GRADLE_HOME%\bin加入PATH中 2.验证是否安装成功 gradle ...
- 190707Python-RabbitMQ
一.简单的RabbitMQ示例 生产者 # Author:Li Dongfei import pika connection = pika.BlockingConnection( pika.Conne ...
- Laravel 在构造方法中使用session
- CEF3编译
要使用CEF3首先就要编译 下载网址为http://opensource.spotify.com/cefbuilds/index.html#windows64_builds 如果下载不动 可以用我上传 ...
- 布尔 kotlin(4)
布尔布尔用 Boolean 类型表示,它有两个值: true 和 false .若需要可空引用布尔会被装箱.内置的布尔运算有:|| – 短路逻辑或&& – 短路逻辑 ...
- vim 配置 scala 语法高亮
第一步:执行下面这个命令: mkdir -p ~/.vim/{ftdetect,indent,syntax}for d in ftdetect indent syntax ; do curl -o ~ ...
- 浅谈Manacher算法
Manacher manacher是一种\(O(n)\)求最长回文子串的算法,俗称马拉车(滑稽) 直接步入正题 首先可以知道的是:每一个回文串都有自己的对称中心,相应的也有自己的最大延伸长度(可以称之 ...
- koa2中间键原理
一.koa2 const http = require('http'); const compose = require('./compose'); class Koa { constructor() ...
- Kotlin之注释
kotliin中注释和java注释是一样的,支持单行注释和多行注释,但kotlin支持嵌套,java不支持