前言

从毕业到现在陆陆续续已经工作五年了,最近一直想干点什么?想来想去,就写点什么吧,写什么呢?根据自己的工作经验和对Java的了解,就那Java编程思想这本书进行讲解,希望对大家能有所帮助。

下载链接:https://legacy.gitbook.com/book/wangsong520/java/details

对象入门

什么叫对象?基于万物皆可盘的观念,对象,便是万物皆是对象,对象就是一个实体,可以是虚拟的,也可以是实体的,我们会基于对象 进行编程,就像我们把手机作为一个对象,编程就是我们对手机进行贴膜处理,再弄个手机壳,再喷个手机颜色之类的,这就是面向于对象的操作,即面向于对象的编程。

抽象的概念

咱先看看书上对抽象的定义或者描述:

1. 在机器模型(位于“方案空间”)与实际 解决的问题模型(位于“问题空间”)之间,程序员必须建立起一种联系。

2. 为机器建模的另一个方法是为要解决的问题制作模型。

我简单的列出两种描述,大家可以看到抽象就是建模,将一个实体存在或则为实体存在的问题进行的解决方案建模。记住我这句话,是解决方案建模,我感觉所有的抽象,都是为了解决某种事情,而进行的建模。

对象描述

为了防止把大家带偏,咱先看一看面向对象编程的设计方法:

  1. 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进 行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达 为一个对象。
  2. 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出 请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的 是从属于目标对象的一个子例程或函数。
  3. 每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出 新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
  4. 每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”。其 中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给 它?”。
  5. 同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,大家不久便能理 解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一 个圆完全能接收形状消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符 合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP最重要的 概念之一。

对象的接口

接口,就像大家在生活中遇到管道一样,管道内部的东西,我们一概不知,我们只能知道,管道接口中提供的入口。接口提供给我们如何使用或者如何调用,但是却不会告诉我们思想。

就像一张灯,它暴漏出来的接口就是开关,我们只知道打开或者关闭,但是为什么灯会亮,会灭,却不会告诉我们一样。

实现方案的隐藏

在我们的生活中,每个对象都有一些不为人知的属性,我们需要进行权限控制,这一块,就涉及到我们下面所有讲的访问权限的问题。举个例字,我们人,我愿意把知识分享给所有人,就是public ,我愿意和我一个圈里的人聊天,就是protect,有一些绝不的隐私,不会让任何人知道,这就是private。

我们在每个对象、方法、属性上标注:public 、protect 、private 来进行控制,不同对象的访问权限,这就是实现方案的隐藏。

方案的重复使用

我们将一些通用的方法组合在一起,以便不同对象调用,这边达到了重复使用的效果。在类的继承中,子类默认拥有了父类的所有公共属性和方法。