一个人至少拥有一个梦想,有一个理由去坚强

心若没有栖息的地方,到哪里都是在流浪

java编程思想——第一章对象导论(1)

“我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来……除非赞成这个协定中规定的有关语言信息的组织和分类,否则我们根本无法交谈。”

——————Benjamin Lee Whorf

第一章主要介绍开发方法概述在内的OOP的基本概念。这也是对了解面向对象程序设计的全貌,为在编程语言中走得更远做好准备。

下面主要介绍这些对象以及方法的一些概念。

1.1抽象过程

所有编程语言都提供抽象机制。 Smakktalk的五个基本特征:

1)万物皆为对象。将对象设为奇特的变量,不仅可存储数据,还可要求对象执行操作。理论上讲,可以抽取待求解问题的任何概念化构件,将其表示为程序中的对象。

2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。具体的说,可以把消息想象为对某个特定对象的方法的调用请求。
3)每个对象都有自己的由其他对象所构成的存储。换句话说,可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。

4)每个对象都拥有其类型。每个对象都是某个类的实例。

5)某一特定类型的所有对象都可以接收同样的消息。

简洁地描述为:对象具有状态、行为和标识

1.2每个对象都有一个接口

类描述了具有相同特性(数据元素)和行为(功能)的对象集合,所以一个类实际上就是一个数据类型。

获得对象方法:必须有某种方式产生对对象的请求,使对象完成各种任务。每个对象都只能满足某些请求,这些请求由对象的接口(interface)所定义,决定接口的便是类型。以电灯泡为例做一个简单的比喻:

Light lt = new Light();
lt.on();

接口确定了对某一特定对象所能发出的请求。概况为:向某个对象“发送消息”(产生请求),这个对象便知道此消息的目的,然后执行对应的程序代码。

上例中,类/类型的名称是Light,特定的Light对象的名称是lt,可以向Light对象发出的请求是:打开它、关闭它、将它调亮、将它调暗。创建Light对象的方式:定义对象的“引用‘(lt),然后调用new方法来创建该类型的新对象。为了向对象发送消息,需要声明对象的名称,并以圆点符号连接一个消息请求。

1.3每个对象都提供服务

当正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想象为”服务提供者“。程序本身就是提供服务,通过调用其他对象提供的服务来实现这一目的。编码的过程就是创建(或者最好在现有的代码库中寻找)能够提供理想服务来解决问题的一系列对象。

将一个个的问题分解为对象集合的合理方式:将问题从表象中抽取出来,对于不存在的明确对象,思考三个问题:它们看起来像什么样子?它们能够提供哪些服务?它们需要哪些对象才能履行它们的义务?、

将对象看作服务的提供者的附带好处:它有助于提高对象的内聚性。高内聚是软件设计的基本质量要求之一:意味着一个软件构件,各个方面”组合“得很好。

1.4被隐藏的具体实现

java三个关键字在类的内部设定边界:pulic、private、protected.

public:对任何人都可用。

private:类内部可访问。

protected:与private作用相当,差别在于继承的类可以访问protected成员,但是不能访问private成员。

默认的访问权限:这种权限被称为包访问权限,类可以访问同一个包中其他类的成员,但是在包之外,这些成员如同指定了private一样。

1.5复用具体实现

最简单地复用某个类地方式就是直接使用该类的一个对象。此外可以将那个类的一个对象置于某个新的类中。我们称为”创建一个成员对象“。新的类可以由任意数量‘任意类型的其他对象以任意可以实现新的类中的想要的功能的方式所组成。因为是在使用现有的类合成新的类,所以被称为组合(composition),如果组合是动态发生的。那么它通常被称为聚合(aggregation)。组合经常被视为”has-a“(拥有)关系,就如常说的汽车拥有引擎。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注