《Java编程思想》笔记 第一章 对象导论
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编程思想》笔记 第一章 对象导论的更多相关文章
- java编程思想笔记(第一章)
Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5 ...
- Java编程思想(第一章 对象入门)总结
面向对象编程(oop) 1.1抽象的进步 所有编程语言的最终目的都是提供一种“抽象”方法. 难点是 在机器模型(位于“方案空间”)和实际解决问题模型(位于“问题空间”)之间,程序员必须建立起一种联 ...
- java编程思想(1)--对象导论
对象导论: 1.1 抽象过程 所有的语言都有抽象机制,抽象是解决复杂问题的根本方法.例如:汇编语言是对底层机器的轻微抽象.命令式语言(如:FORTRAN.BASIC.C)又是对汇编语言的抽象. jav ...
- Java编程思想读书笔记 第一章 对象导论
抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...
- think in java 第四版读书笔记 第一章对象导论
很久没有碰过java了,为了项目需要以及以后找工作,还是有必要将think in java通读一遍.欢迎大家一起讨论学习 1.1抽象过程 面向对象语言的5个特性: 1.万物皆对象 任何事物都可以抽象为 ...
- Java编程思想笔记(第二章)
第二章 一切都是对象 尽管Java是基于C++的,但相比之下,Java是一种更纯粹的面向对象程序设计语言. c++和Java都是杂合型语言(hybird language) 用引用(referenc ...
- [Java编程思想] 第一章 对象导论
第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来--除非赞成这个协定中规定的有 ...
- Java编程思想——第17章 容器深入研究 读书笔记(三)
七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...
- Java编程思想 第21章 并发
这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...
随机推荐
- docker基础-虚拟化与容器介绍
正如所有关心docker技术的人所知道的那样,docker是以容器虚拟化为技术为基础的软件,因此在学习docker具体的内容之前,有必要讨论一下虚拟化和容器技术. 虚拟化技术: 在了解虚拟化技术时,各 ...
- 【iOS开发】iOS对UIViewController生命周期和属性方法的解析
iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有 ...
- 软工实践Beta冲刺(5/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...
- lintcode-115-不同的路径 II
115-不同的路径 II "不同的路径" 的跟进问题: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用 1 和 0 来表示. 注意事项 m 和 n ...
- 并发(三) CountDownLatch
CountDownLatch 和CyclicBarrier的区别是,CyclicBarrier可以循环使用,CountDownLatch不可以:CyclicBarrier可以有一个Runnable参数 ...
- json数据中的某一个字段进行快速排序quicksort
快速排序(Quicksort)是对冒泡排序的一种改进,是一种分而治之算法归并排序的风格. 核心的思想就是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小 ...
- BZOJ4399 魔法少女LJJ(线段树合并)
注意到只有增加点/合并的操作.这些操作都可以用线段树完成,于是线段树合并一发就好了.注意乘积大小直接比较肯定会炸,取个对数即可.数据中存在重边. #include<iostream> #i ...
- 【转】Visio画用例模型图竟然没有include关系
转自:http://blog.csdn.net/shuixin536/article/details/8289746 由于电脑上没有安装Rose,因此决定用visio来画UML中的用例模型图,在绘制的 ...
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) C (用map 超时)
C. Bear and Colors time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- grub ubuntu启动
set root=(hd0,gpt10) 现在变为 gpt9 了 安装固态后.变成了 (hd1,gpt11) set prefix=(hd0,gpt10)/boot/grub insmod norma ...