对象引论

专栏目的:

传统的学习方式都是罗列知识点,达到全面学习的目的。可是这样的缺陷就是不能很深入理解这些知识。因此咱们得学习的观念应该不只仅是全面性,还有就是明天它是从那里来,解决了什么问题,而且学习处理这些问题的新的思惟方式。整体来讲就是全面,根源,场景,新思惟。java

章节解读思路:

首先学习必定要系统,因此我先作了一个思惟导图去总体把握。而后是具体分析每一个点,分析他们之间的联系。主要是要知道这个知识点在解决什么问题,它的思路是怎么样的,看待问题的方式是怎么样的。对于一些很容易的知识点就没有详细探讨了。程序员

整个章节的知识点的整理(全面):

图片描述

具体章节思考(根源,场景,新思惟):

脉络

整个章节的脉络其实很清晰,就是首先谈论的就是面向对象的思惟,而后就是java怎么去实现的。编程

面向对象

咱们思考一个问题?计算机在帮助咱们人类解决问题。可是计算机解决问题的方式须要计算机能读懂的方式。这样就有了机器模型和具体问题模型之间转换的问题。那么咱们学习的这么的语言就在充当这种将具体问题模型转换为机器模型的桥梁。基于对比咱们很清楚,像c语言是面向过程的语言,这种语言更加的偏向机器,更加讨好计算机,这样的缺陷就是开发者转换模型比较麻烦。可是面向对象语言就将这种缺陷解决了。咱们将程序看成不少的对象的集合,整个程序的运做都是在发送消息而后进行操做。这样程序就像咱们不少人类在协同合做,有了属性和行为。这样咱们去开发的时候就很像本身在操做同样,思考上去更加方便。整体来讲语言就是在转换机器模型和具体问题模型的桥梁,面向对象语言更加偏向咱们人类的思考方式的桥梁。数组

面向接口

咱们虽然将一切东西都看成是对象,可是去解决具体问题更多的在于去对象去执行某一个操做。因此咱们去写程序的角度不只仅是咱们须要怎么去抽象一切事物为一个class,同时咱们须要知道咱们须要这个对象去作什么。能够说抽象事物是面向对象编程的基础,而面向接口就是将一切对象运做起来去解决问题。这里面新颖的思惟就是面向接口编程。安全

隐藏具体实现

咱们将一切抽象为对象以后,那么其中一些是能够共用的,因此就有了类库。在这里咱们能够将程序员分为两种,一个是类建立者,一个就是类使用者。一个类里面确定有些信息是很重要的,修改一些内容将对该类的改变很大。可是对于类使用者来讲其实并不重要。那么这个时候咱们只将类使用者须要的东西暴露给他,而将很敏感的关键处给隐藏,这样的设计将会更加安全,更加的健壮。因此隐藏具体实现其实更多的是为了解决安全性的问题,固然也有权限的问题。学习

复用代码

我以前谈到共用的问题,其实这里面也有复用。那么咱们说到复用其实咱们很容易想到,继承。可是复用代码是否是只有继承呢?不是,其实还有一种咱们常常会用,叫作组合。简单的将就是在同一个类里面将另一个类看成一个属性。我以为这种考虑,打开了对于复用代码的这种理解,值得记录。spa

向上转型

咱们在写程序的时候会尽可能想写一些没有继承的类,由于这样比较干净,不会受父类的影响。咱们更想要看成基类,这样更少依赖特定类型。接口就实现了这个功能。好比三角形和圆形都有计算面积的行为。咱们能够写一个几何图形的接口,而后三角形和圆形去实现就行了。可是咱们执行程序的时候就不知道执行的是三角形仍是圆形,那么java在这里就作了处理。这样的好处就是对于咱们以前写好的代码若是须要修改实现方式,不会影响该接口的使用。这也是向上转型的魅力所在。设计

向下转型和范型

有了向上转型,确定就有向下转型。那么什么是向下转型呢。就是咱们将一个对象A存储到一个普通数组,这个时候存储进取的是object,而不是A。而后咱们须要将A取出来,这个时候取的是object的引用,可是A里面的方法就被隐藏了。因此咱们须要将取出来的object强制转换为A。那么对于我到处了A和B,那么咱们怎么知道取出来的是A或者B呢。因此这个时候就须要范型去限定存储的对象是怎么类型,当咱们向下转型的时候就不会出错了。对象

相关文章
相关标签/搜索