Java编程思想

一、对象导论

1.1 抽象过程

面向对象语言的五个基本特性

  1. 万物皆对象
  2. 程序是对象的集合,他们通过发消息来告知彼此所要做的
  3. 每个对象都有自己的由其他对象构成的存储,即可以通过创建包含现有对象的包的方式来创建新类型的对象
  4. 每个对象都有拥有其类型
  5. 某一特定类型的所有对象都可以接受同样的消息。

​ 对象更为简洁的描述是对象具有状态,行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每一个对象都可以唯一的与其他对象区分开来,每一个对象在内存中都有一个唯一的地址。

1.2 每个对象都有一个接口

  • 创建某一类型的变量(在面向对象中称其为对象或者实例),然后操作这些变量(发送消息/请求,发送消息对象就知道要做什么)。

  • 每个类的成员会元素都具有某种特性,每个成员都有其自身的状态。

  • 每个对象都属于定义了特性的行为的某个特定的类。

  • 类描述了具有相同特性(数据元素)和行为(功能)的对象集合,所以一个类实际上就是一个数据类型。二者的差异在于程序员通过定义类来适应问题,而不再被迫只能使用现有的用来表示机器中的存储单元的数据类型。

  • 面向对象程序设计的挑战之一就是在问题空间的元素和解空间的对象之间创造一一对应的映射。

1.3 每个对象都提供服务

  • 将对象想象为服务提供者,程序本身将向用户提供服务。他将通过调用其他对象提供的服务来实现这一目的。
  • 作为程序员,你的目标就是去创建能够提供理想的服务来解决问题的一系列对象。
  • 将对象看作是服务提供者,有助于提高对象的内聚性,每个对象都可以很好的完成一项任务,但是它并不试图做更多的事情。

1.4 被隐藏的具体实现

  • 将程序开发人员按照角色分为类创建者和客户端程序员。
  • 客户端程序员的目标是收集各种用来实现快速应用开发的类
  • 类创建震的目标是构建类。这种类只向客户端程序员暴露必须的部分,而隐藏其他部分

访问控制的两个原因:

  1. 让客户端程序员无法触及他们不应该触及的部分
  2. 允许库设计者可以改变类内部的工作方式,而不用担心会影响到客户端程序员

​ 如果接口和实现可以清晰的分离并得以保护,那么就可以轻易而举的完成访问控制。

  • Java用三个关键字:public、private、protected在类的内部设定边界,决定了紧跟其后被定义的东西可以被谁使用。

  • protected关键字和private作用相当,差别仅在于继承的类可以访问。protected成员,但是不能访问private成员。

  • Java还有一种默认的访问权限即包访问权限(没有声明public、private、protected),类可以访问在同一个包中的其他类的成员,但是在包之外,这些成员如同指定了private一样。

1.5 复用具体实现

  • 最简单的复用某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新的类中称其为创建一个成员对象。
  • 新的类可以由任意数量,任意类型的其他对象以及任意可以实现新的类中想要的功能的方式所组成,新类的成员对象通常都被声明为私有。
  • 这种是由现有的类合成新的类被称为组合。如果组合是动态发生的,它通常被称为聚合。组合经常被视为拥有关系
  • 实际上在建立新类时,应该首先考虑组合,因为它更加简单。如果采用这种方式,设计会变得更加清晰。处处都使用继承这种印象不应该存在。

1.6 继承

  • 以现有的类为基础复制它,然后通过添加和修改这个副本来创建新类。但当父类发生变动时被修改过的子类也会反映出这些变动。

  • 继承使用不是基类型和导出类型的概念表示了这种类型之间的相似性。

  • 一个基类型包含其所有导出类型所共享的特性和行为。

  • 可以创建一个基类型来表示系统中某些对象的核心概念。从基类型中导出其他类型来表示此核心可以被实现的各种不同方式。

  • 当继承现有类型时,也就创造了新的类型。这个新的类型不仅包括现有类型的所有成员。而且更重要的是他复制了基类的接口。也就是说,所有可以发送给基类对象的消息,同时也可以发送给导出类对象。

  • 直接在导出类中添加新的方法,或者对基类的方法进行重写。

(小张要坚持看完,更新下去…)

你可能感兴趣的:(Java,java,开发语言,后端)