抽象过程

纯粹的面向对象程序设计方式:

  • 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作
  • 程序是对象的集合: 通过发送消息告诉彼此要做的
  • 每个对象都有自己的由其它对象构成的存储:可以在程序中构建复杂的体系,并将复杂性隐藏在对象之后
  • 每个对象都是某个类的对应实例:类的特性在于可以发送什么样的消息给它
  • 某一特定类型的对象可以接收同样的消息

访问控制:隐藏实现细节

类创建者:创建新数据类型的程序员
客户端程序员:使用各种类以实现快速应用开发

  • 向客户端程序员隐藏实现细节
  • 库设计者可以改变设计方式而不影响客户端程序员

accesser specifier

  1. public
  2. private
  3. protected: 继承的类可访问
  4. default: 包访问权限,类可以访问在同一个包中的其它类成员

继承

is-a:导出类只覆盖基类的方法。
is-like-a:导出类含新的接口元素。

  • 静态绑定:编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要执行的代码的绝对地址
  • 动态绑定:当向对象发送消息时,被调用的代码直到运行时才能确定。编译器确保调用方法的存在,并对调用参数和返回值执行类型检查(无法提供该保证的语言是弱类型的),但是并不知道将被执行的确切代码。Java默认动态绑定,更好的支持多态。

Java编程思想读书笔记 第一章 对象导论的更多相关文章

  1. 《Java编程思想》笔记 第一章 对象导论

    1.抽象过程 Q:什么是对象??? A:   1) 万物皆对象 --- 对象具有状态,行为和标识 2)程序是对象的集合,他们通过发送消息来告诉彼此要做的 3)通过创建包含现有对象的包的方式来创建新类型 ...

  2. Java编程思想 4th 第1章 对象导论

    所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对 ...

  3. think in java 第四版读书笔记 第一章对象导论

    很久没有碰过java了,为了项目需要以及以后找工作,还是有必要将think in java通读一遍.欢迎大家一起讨论学习 1.1抽象过程 面向对象语言的5个特性: 1.万物皆对象 任何事物都可以抽象为 ...

  4. JAVA编程思想读书笔记(四)--对象的克隆

    接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...

  5. JAVA编程思想读书笔记(三)--RTTI

    接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...

  6. JAVA编程思想读书笔记(五)--多线程

    接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...

  7. JAVA编程思想读书笔记(二)--容器

    接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...

  8. Java编程思想读书笔记(一)【对象导论】

    2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...

  9. Java编程思想读书笔记

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. C语言写数据库(一)

    /*** connect.c ***/ #include<stdio.h> #include<stdlib.h> #include"mysql.h" int ...

  2. d3.js+svg的树形图

    效果图 数据 { "name":"中国", "children": [ { "name":"浙江" ...

  3. Hibernate持久化类规则

    注意事项: 提供无参的构造方法,因为在hibernate需要使用反射生成类的实例 提供私有属性,并对这些属性提供公共的setting和getting方法,因为在hibernate底层会将查询到的数据进 ...

  4. js 函数定义的方式

    js 函数定义的方式 一.总结 一句话总结: 最常见就下面三种 最常见:function func1([参数]){/*函数体*/} 将匿名函数赋值给变量:var func2=function([参数] ...

  5. jQuery .prop()

    .prop() .prop( propertyName )Returns: Anything Description: Get the value of a property for the firs ...

  6. redis high available solution/ redis 高可用方案

    http://developers.linecorp.com/blog/?p=1420 http://engineering.docusign.com/articles/redis-sentinel- ...

  7. T84341 Jelly的难题1

    T84341 Jelly的难题1 题解 当窝发现窝的锅在读入这个矩阵的时候,窝..窝..窝.. 果然,一遇到和字符串有关的题就开始吹空调 好啦我们说说思路吧 BFS队列实现 拿出一个没有走过的点,扩展 ...

  8. 1.7 本机单步调试(Intellij IDEA)

    先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指 ...

  9. python读取在文件中以unicode编码方式转成中文

    row='\u4E09\u56FD\u6F14\u4E49' eval("u"+"\'"+row+"\'")

  10. spark2.2 中文文档

    http://spark.apachecn.org/#/docs/7?id=从-spark-sql-20-升级到-21