资讯专栏INFORMATION COLUMN

对象引论

HelKyle / 2678人阅读

摘要:面向对象我们思考一个问题计算机在帮助我们人类解决问题。但是面向对象语言就将这种缺陷解决了。我们将程序当作很多的对象的集合,整个程序的运作都是在发送消息然后进行操作。

专栏目的:

传统的学习方式都是罗列知识点,达到全面学习的目的。但是这样的缺陷就是不能很深刻理解这些知识。所以我们得学习的观念应该不仅仅是全面性,还有就是明天它是从那里来,解决了什么问题,并且学习处理这些问题的新的思维方式。总体来说就是全面,根源,场景,新思维。

章节解读思路:

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

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

具体章节思考(根源,场景,新思维): 脉络

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

面向对象

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

面向接口

我们虽然将一切东西都当作是对象,但是去解决具体问题更多的在于去对象去执行某一个操作。所以我们去写程序的角度不仅仅是我们需要怎么去抽象一切事物为一个class,同时我们需要知道我们需要这个对象去做什么。可以说抽象事物是面向对象编程的基础,而面向接口就是将一切对象运作起来去解决问题。这里面新颖的思维就是面向接口编程。

隐藏具体实现

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

复用代码

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

向上转型

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

向下转型和范型

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73310.html

相关文章

  • 备考PMP的程序员注意了!!!13张PMPBook思维导图免费送上,没有套路,直接领取

    最近在准备12月份的PMP考试,通过一个多月的努力,终于把PMPBook中重点内容转换成思维导图了,方便查阅和记忆 1.引论 2.项目运行环境 3.项目管理的角色 4.项目整合管理 5.项目管理范围 6.项目进度管理 7.项目成本管理 8.项目质量管理 9.项目资源管理 10.项目沟通管理 11.项目风险管理 12.项目采购管理 13.项目相关方管理 最后福利 大家也可以...

    wangbinke 评论0 收藏0
  • Java锁机制了解一下

    摘要:底层是是通过对象,对象有自己的对象头,存储了很多信息,其中一个信息标示是被哪个线程持有。当一个线程执行的代码出现异常时,其所持有的锁会自动释放。 前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍 只有光头才能变强! 本文章主要讲的是Java多线程加锁机制,有两种: Synchronized 显式Lock 不得不唠...

    hyuan 评论0 收藏0
  • 多线程三分钟就可以入个门了!

    摘要:系统级线程核心级线程由操作系统内核进行管理。值得注意的是多线程的存在,不是提高程序的执行速度。实现多线程上面说了一大堆基础,理解完的话。虚拟机的启动是单线程的还是多线程的是多线程的。 前言 之前花了一个星期回顾了Java集合: Collection总览 List集合就这么简单【源码剖析】 Map集合、散列表、红黑树介绍 HashMap就是这么简单【源码剖析】 LinkedHashMa...

    awkj 评论0 收藏0
  • 华盛顿邮报:中国AI研究领先世界,深度学习论文数量及质量居第一

    摘要:白宫在月日发布的报告中称,中国的人工智能研究已经走在了美国前面,提及深度学习或深度神经网络的期刊论文数量上,其实中国早在年就实现了对美国的超越,居世界第一。 白宫在10月14日发布的报告中称,中国的人工智能研究已经走在了美国前面,提及深度学习或深度神经网络的期刊论文数量上,其实中国早在2013年就实现了对美国的超越,居世界第一。值得一提的是,中国的相关论文不仅数量上远超其他国家,质量上的表现...

    remcarpediem 评论0 收藏0
  • Thread源码剖析

    摘要:现在已经没有强制线程终止的方法了由于方法可以让一个线程终止掉另一个线程被终止的线程会立即释放锁,这可能会让对象处于不一致的状态。 前言 昨天已经写了: 多线程三分钟就可以入个门了! 如果没看的同学建议先去阅读一遍哦~ 在写文章之前通读了一遍《Java 核心技术 卷一》的并发章节和《Java并发编程实战》前面的部分,回顾了一下以前写过的笔记。从今天开始进入多线程的知识点咯~ 我其实也是相...

    HtmlCssJs 评论0 收藏0

发表评论

0条评论

HelKyle

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<