一、抽象过程
所谓的“类型”是指“抽象的是什么?”
面向对象程序设计方式
1、万物皆为对象
2、程序是对象的集合,他们通过发送消息来告知彼此所要做的
3、每个对象都有自己的由其他对象构成的存储
4、每个对象都拥有其类型
5、某一特定类型的所有对象都可以接收同样的消息对象具有状态、行为和标识
状态:成员变量
行为:成员方法
标识:内存中唯一的地址
二、每个对象都有一个接口
- 所有的对象都是唯一的,但同时也是具有相同的特性和行为的对象所归属的类的一部分。
类是一种抽象的数据类型 - 接口确定了对某一特定对象所能发出的请求
创建对象的方式:定义对象的引用,然后调用new方法来创建该类型的新对象
三、每个对象都提供服务
- 将对象看作是服务的提供者的的好处:提高对象的内聚性
四、被隐藏的具体实现(访问控制)
- 访问指定词 access specifier
public,private,protected,默认的访问权限
public:对任何人可用
private:只有类型创建者和类型内部方法可用
protected:继承的类可以访问
默认的访问权限:包访问权限
五、复用具体实现
- 最简单的复用某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新的类中。我们称其为“创建一个成员对象”
+组合(composition):使用现有类合成为一个新的类。如果组合是动态发生的,我们称其为聚合(aggregation),组合被视为has-a(拥有关系)。
组合中新类的成员对象通常被声明为private
六、继承
- 基类与导出类
使基类与导出类产生差异的方法:
1、直接在导出类中添加新方法
2、改变基类现有方法的行为,这被称之为覆盖(overriding)
七、伴随多态的可互换对象
- 把导出类看作基类的过程成为向上转型(upcasting)
八、单根继承结构
- 所有的类最终都继承自单一的基类,这个类为OBJECT
单根继承结构保证所有的对象都具备某些基本功能,所有对象可以很容易的在堆上创建
九、容器
- java中的容器
list:用于存储序列(即,存储对象有索引)
map:也被成为关联数组,用来建立对象之间的联系
set:每种对象类型只持有一个(即存储对象不可重复) - ArrayList与LinkedList
ArrayList:随机访问元素是一个花费固定时间的操作
LinkedList:在序列中插入一个元素效率较高 - 参数化类型机制(即,泛型)
使用原因:当从容器中取出对象引用时,必须记住对象的类型,这样才能执行正确的向下转型。
十、对象的创建和生命周期
十一、异常处理:处理错误
十二、并发编程
- 在编程中的基本思想,同意时间处理多个任务
并发:将问题切分成多个可独立运行的部分,从而提高程序的响应能力
线程:在程序中,彼此独立运行的部分