第一张 对象导论

第一张 对象导论
1.1 抽象过程
(1)编程语言都是提供抽象机制(解决问题的复杂性直接取决于抽象的类型和质量)。
(2)对象:将问题空间中的元素及其在解空间中的表示;其思想的实质死程序可以添加新类型
的对象使自身适用于某个特定问题。
(3)Java语言基于smalltalk的五个基本特性所面向的程序设计方式:
<1>万物皆对象
<2>程序是对象的集合
<3>每个对象都有自己的由其他对象所构成的存储
<4>每个对象都拥有其类型
<5>某一个特定类型的所有对象都可以接受同样的消息
(4)booch总结对象简单描述为:对象具有状态、行为和标识。(意味每一个对象都拥有内部
数据和方法,并且每一个对象在内存都具有唯一的一个地址)
1.2 每个对象都一个接口
(1)亚里士多德是一个深入研究类型的哲学家(可能是他):所有的对象都是唯一的,但同时
具有相同的特性和行为的对象所归属的类的一部分;这种思想在程序中以关键字“class”引入新的类型

(2)抽象数据类型的运行方式与内置类型几乎完全一致:创建某一个类型的变量,然后操作这
些变量,这些变量表示成唯一的实体,也就是对象;每一个对象都属于定义了特性和行为的某个特定的
类。
(3)每个对象都只能满足某些请求,这些请求有对象的接口所定义,决定接口的便是类型(接
口确定了对某一些对象所能发出的请求,在程序中必须有满足这些请求的代码,这些代码与隐藏的数据
一起构成了实现)。
1.3 每个对象都提供服务
将对象看作是“服务提供者”,程序本身向用户提供服务,它将调用其他对象提供的服务来实
现这一目的。
好处:它有助于提高对象的内聚性(软件的基本质量要求之一)
1.4 被隐藏的具体实现
(1)为什么被隐藏:因为加一隐藏,客户端程序员将不能访问它,也就可以任意的修改隐藏的
部分,而不用担心对其他人造成影响。被隐藏的部分都是对象内部最脆弱的部分,他们很容易被客户端
所毁坏,因此隐藏起来可以减少程序bug。
(2)java用三个关键字在类的内部设计边界:
public:表示紧随其后的元素对任何人都可以使用;
private:除类型创建者和类型的内部的方法之外的任何人都不能访问的元素;
protected:与private相当,差别就是继承的类可以访问protected成员,而private
不可以;
(3)包访问权限:类可以在同一个包中的其他类型成员,但是在包之外,这些成员如同制定的
private一样。
1.5 复用具体实现
(1)最简单的复用某个类的方式就是直接使用该类的一个对象,也可以将这个对象置于某个新
的类中,称为“创建一个成员对象”。
(2)新的类可以由任意数量、任意类型的其他对象以任何可以实现新的类中想要的功能的方式
所组成。使用现有的类合成新的类称为“组合”,如果组合是动态生成的,则称为“聚合”。
(3)组合具有很大的灵活性,新类的成员对象通常设为private的。
1.6 继承
(1)继承可以在创建一个类之后,我们可以以这个类为基础,复制它,然后添加和修改这个类
来创建新类。
(2)让基类和导出类产生差异:第一种,直接在导出类中添加新的方法;第二种,导出类可以
对基类的方法进行覆盖
1.7 伴随多态的可以互换对象
把导出类看作是他的基类的过程称为向上转型。
1.8 单继承结构
好处:(1)单根继承结构保证所有对象都具备某些功能;(2)单根继承结构使垃圾回收器的
实现变得容易很多。
1.9 容器
对容器选择的原因:(1)不同的容器提供不同类型的的接口和外部的行为;(2)不同的容器
对于某些操作具有不同的效率
1.10 对象的创建和生命周期
(1)对象的储存空间和生命周期可以在编写程序时确定,这可以通过将对象置于堆栈或静态存
储区域来实现,但必须在编写程序时直到对象确切的数量、生命周期和类型。在堆栈上创建的对象,编
译器可以确定对象存活的时间,并且可以自动销毁它;
(2)在堆的内存池中动态的创建对象,直到运行时才知道需要多少对象,他们的生命周期如何
;如果在堆上创建对象,编译器对他的生命周期一无所知;
1.11 异常处理:处理错误
异常处理将错误处置直接置于编译语言中,有时甚至置于操作系统中。异常是一种对象,他从
出错点被抛出,并被专门的设计用来处理特定类型错误的相应异常处理器捕获。
1.12 并发编程
(1)把问题切换成多个可以独立运行的的部分,从而提高程序的响应能力,在程序中,这些彼
此独立运行的部分称之为线程,总得称为并发。
(2)存在的问题:共享资源;
解决方案:某个任务锁定某项资源,完成其任务,然后释放资源锁,使其他任务可以
使用这项资源;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值