1.抽象过程

Q:什么是对象???

A:   1) 万物皆对象 --- 对象具有状态,行为和标识

2)程序是对象的集合,他们通过发送消息来告诉彼此要做的

3)通过创建包含现有对象的包的方式来创建新类型的对象

4)每个对象都具有其类型。

每个对象都是某个类(class)的实例

类与类最重要的区别就是可以发什么样的消息给它。

5)某一特定类型的对象都可以接受同样的消息

2.每个对象都有一个接口

2.1 接口(interface) 
2.2 类描述了具有相同特性(数据元素)和行为(功能)的对象集合
2.3 一个类就是一种数据类型
2.4 每个对象只能满足某些消息请求,这些请求由对象的接口定义
Light lt = new Light();
lt.on();
对象的名称是lt(lt只是Light对象的一个引用,这里把它就当作Light的对象)lt的类型是Light 
向这个对象发送一个开灯的请求 需要声明对象的引用lt 发送的消息是on() 格式是lt.on();

3.每个对象都提供服务

4.被隐藏的具体实现

  • 类创建者
  • 客户端程序员
  • 访问权限:public private protected 默认

5.复用具体实现

5.1 代码复用是面向对象程序设计语言所提供的最了不起的优点之一
5.2 创建一个成员对象:把一个类的对象至于某个新的类中(这个对象可以使某个类的实例的引用也可以是基本数据类型)
5.3 组合: 用已有的类构建新的类(通过创建成员对象的方式,新类中的成员对象一般为private,使客户端程序员不是使用它)
5.4 创建新类是首先考虑组合

6.继承 extends

7.伴随多态的可互换对象

8.单根继承结构

  • 终极基类Object

9.容器

9.1 一种对象类型,它持有其他对象的引用
9.2 参数化类型--->泛型

10.对象的创建和生命期

  • 堆(Heap)
  • 堆栈(Stack)即栈

11.异常处理,处理错误

12.并发编程

13. Java与Internet

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

  1. java编程思想笔记(第一章)

    Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5 ...

  2. Java编程思想(第一章 对象入门)总结

    面向对象编程(oop) 1.1抽象的进步 所有编程语言的最终目的都是提供一种“抽象”方法.   难点是 在机器模型(位于“方案空间”)和实际解决问题模型(位于“问题空间”)之间,程序员必须建立起一种联 ...

  3. java编程思想(1)--对象导论

    对象导论: 1.1 抽象过程 所有的语言都有抽象机制,抽象是解决复杂问题的根本方法.例如:汇编语言是对底层机器的轻微抽象.命令式语言(如:FORTRAN.BASIC.C)又是对汇编语言的抽象. jav ...

  4. Java编程思想读书笔记 第一章 对象导论

    抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...

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

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

  6. Java编程思想笔记(第二章)

    第二章  一切都是对象 尽管Java是基于C++的,但相比之下,Java是一种更纯粹的面向对象程序设计语言. c++和Java都是杂合型语言(hybird language) 用引用(referenc ...

  7. [Java编程思想] 第一章 对象导论

    第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来--除非赞成这个协定中规定的有 ...

  8. Java编程思想——第17章 容器深入研究 读书笔记(三)

    七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...

  9. Java编程思想 第21章 并发

    这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...

随机推荐

  1. ACM第一阶段学习内容

    一.知识目录 字符串处理 ................................................................. 3 1.KMP 算法 .......... ...

  2. 编程练习:寻找发帖"水王"

    题目: 寻找发帖"水王" 来源: 编程之美 分析 衍生:就是给定一个数组,其中某个元素出现次数超过了数组长度的一半,找出这个元素 方法s 方法1 对这个串进行遍历,同时对出现的元素 ...

  3. Android隐藏键盘

    今天接到的任务是在验证码输入框中加入键盘监听事件,需要点击Enter实现登录,这个比较好实现,但是在登录时,键盘并没有隐藏掉,看上去很别扭,因此,百度了一堆方法,但是都无济于事,最后找到了一个,如下, ...

  4. C++陷阱系列:让面试官倒掉的题

    http://blog.chinaunix.net/uid-22754909-id-3969535.html 今天和几位同仁一起探讨了一下C++的一些基础知识,在座的同仁都是行家了,有的多次当过C++ ...

  5. System and Device power management.

    Advanced Configuration and Power Management Interface(ACPI)是由Intel,Microsoft等厂家订的一套Spec,规范了OS,APP对于电 ...

  6. css如何选择相同class下的第一个class元素和最后一个元素?

    如图,如果像选择类名为  class="exerciseInfo"  中的第一个和最后一个div,做法如下: 选择第一个类名: .exerciseInfo: nth-of-type ...

  7. 列数不固定时怎么使用el-tabel展示数据

    <el-table :data="contents" stripe> <el-table-column v-for="(item, index) in ...

  8. mac --snip 滚动截屏

    1.snip 下载配置:https://jingyan.baidu.com/article/fec4bce2458d03f2618d8b8e.html 2.mac的火狐浏览器好像不支持,必须在sofa ...

  9. Windows关机过程分析与快速关机

    原文链接:http://blog.csdn.net/flyoxs/article/details/3710367 Windows开机和关机慢,很多时候慢得令人抓狂.特别是做嵌入式开发时(如XPE和Wi ...

  10. 遇到问题---java---git下载的maven项目web用tomcat发布时不带子项目

    遇到的情况是用git下载maven项目,然后用mvn eclipse:eclipse命令标记为eclipse项目之后,使用maven插件导入之后用tomcat发布运行,发现maven关联的几个子项目没 ...