美文网首页
对象导论第一篇

对象导论第一篇

作者: jackLee | 来源:发表于2016-03-08 18:13 被阅读104次
  • 抽象过程:所有的编程语言都是提供了一种抽象的机制,汇编语言是对底层机器的轻微抽象,C,Basic语言是对汇编语言的抽象,高级语言是对底层语言的封装和抽象,界面操作是对命令行的封装和抽象。
  • 人们所能够解决的问题的复杂性取决于对问题抽象的类型和质量。
  • java 是一种面向对象的语言,简称为OOP语言,OOP是对问题空间的一种抽象过程,允许根据问题来描述问题,可以通过添加新的类型的对象,使其具有某种行为特征和状态特性,用于解决某一类的问题。当程序需要添加新的需求的时候,可以再通过添加新的类和对象来解决新的需求。
  • 什么是对象:
    • 万物皆为对象,对象是一个奇特的变量,根据功能的不同,对象也有不同的分类和用途。有的对象可以用来存储数据,如List,Map,Array;有的可以可以执行某种操作,比如add,update数据,connect,close连接,onCreate,onStart,onDestroy();有的可以展示自身的状态,比如:isAlive(),isConnected(),isLogined();总之,你可以抽象任何一个待求解的问题为一个类(对象),比如:Db,dog,User,Car,Task,Message,Task,Manager.....换言之:万物皆为对象
  • 程序是对象的集合,它们通过组合,继承,封装,像建筑大楼一样横向和纵向地构成了一个由小至大,协调工作的系统。它们通过发送消息来告诉彼此所要做的,专业点称为调用,彼此调用自己所需要的功能来解决需求问题。比如:我需要造一台电脑,需要主机,鼠标,键盘,显示器,那么我就调用别人或者自己做好的鼠标键盘显示器,这里它们每一个都是一个对象,能提供具体的方法替我解决需求,这里有点像是对各种对象的一个功能组合,是物尽其用为我所需。那么在程序中,我们也同样需要各种第三方的库,比如Volley,Okhttp为我们解决网络传输问题,ActiveAndroid为我们解决数据持久化处理问题。这就是我所理解的调用。当然在相互调用中涉及到数据的传递(参数),状态的转移,以及更高技巧的回调(callback)(:比如在网络中发送Get,Post请求,在客户端需要对请求的结果进行处理,请求成功或失败需要用回调进行不同的处理),此时会需要添加很多的监听器,涉及到观察者模式。总之,程序是对象的集合,这句话颇有深意,需要在实践中理解
  • 每个对象都有自己的由其他对象所构成的存储,换言之,可以通过包含现有对象的方式去创建新的对象。这其实是对封装的通俗理解。就比如上面的组装电脑的例子,此时我需要一台主机,其实主机里面又包含了CPU,散热器,电源,换言之,主机是对CPU,散热器,电源的封装,使其具有了主机自己特有的功能对外提供服务。那么对于我们调用主机组装电脑的时候,就无需自己再去组装底层的CPU的器件了。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。再比如Android开发中:我们一般用BaseActivity继承Activity实现Activity原有的方法时再添加自己想要的一些方法,此时Base就是对Activity的一种封装。然后在应用层可能会有UserActivity对BaseActivity的继承然后添加自己业务的一些方法,此时UserActivity就是对BaseActivity的一种封装。这是通过继承原有的类去封装成新的类。另一种方式则是包含的方法去封装新的类或方法,称为组合
  • 每个对象都有其类型,即每一个对象都是属于一个类的实例,它是一种特殊的变量。但凡类型都会提供服务,具有状态,具有行为和特征。每一个对象也具有其类的行为和特征能提供服务。比如,狗是一种类,它能吃能睡能跑能叫,这就是它的行为。它有眼睛牙齿舌头和皮毛,这就是它的特征。它还有生老病死,这就是它的状态。这些事从广义上的角度去看的,即从类的角度去看待。然后我家有一只小黄狗,此时就像狗进行了实例化,成为了一个鲜活的对象。
  • 某一特定类型的所有对象都可以接收同样的消息。这是一句意味深长的话,换言之,同一类事物对外提供一样的服务,就像所有狗都会叫,所有鸟都会飞,无视个体差异而看宏观表现。另外在纵向(继承)的角度来看:子类能提供父类的服务,比如圆形继承形状,那么但凡形状能提供的服务圆形都能提供。藏獒继承狗,藏獒可以提供狗所有的服务而且还有自己特色的服务。这就意味着在程序中可以编写对形状的交互并自动处理所有与几何形状性质相关的事物的代码。其实是OOP的向下转型。即若能对父类进行交互,那么其子类都可以进行交互。这在java中集合比较常见,List ,ArrayList,LinkedArrayList。
  • 一句简洁而又深刻的总结:对象具有状态行为和标识,可以提供服务这意味着每一个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以与其他对象唯一区分开来,就是每一个多谢在内存中都有一个唯一的地址。

相关文章

  • 对象导论第一篇

    抽象过程:所有的编程语言都是提供了一种抽象的机制,汇编语言是对底层机器的轻微抽象,C,Basic语言是对汇编语言的...

  • 对象导论

    抽象过程 1.万物皆对象。讲对象视为奇特的变量,他可以储存数据,除此之外,你还可以要求他在自身上执行操作。2.程序...

  • java 对象导论

    1.程序的抽象过程 任何对编程语言都会提供一种抽象的机制。不同的语言的抽象的层次不一样,比如汇编语言就是对底层机器...

  • 001 对象导论

    概念 面向对象程序设计OOP:Object-oriented Programming CGI:common gat...

  • 一 对象导论

    在对象的使用时,最关键的问题之一便是他们的生成和销魂方式.每个对象为了生存,都需要销毁资源,尤其是内存.当我们...

  • Java——对象导论

    抽象过程 万物皆对象 程序是对象的集合,它们通过发送消息来告知彼此所要做的。 每个对象都有自己的由其他对象所构成的...

  • 1、对象导论

    一、抽象过程 所谓的“类型”是指“抽象的是什么?” 面向对象程序设计方式1、万物皆为对象2、程序是对象的集合,他们...

  • 《JAVA编程思想》学习笔记:第1-4章(Java概述)

    第一章、对象导论 1.1 抽象过程 面向对象编程:(OOP,Object Oriented Programming...

  • 第一章 对象导论(Java对象导论)

    计算机革命起源于机器,编程语言的产生也始于对机器的模仿 但随着发展机器越来越像人脑的一部分,于是编程语言也不断发展...

  • 读书笔记 | 《Think in Java》Ⅱ一切都是对象

    上篇:读书笔记 | 《Think in Java》前言&Ⅰ对象导论 Ⅱ. 一切都是对象 ---4.4更新--- 2...

网友评论

      本文标题:对象导论第一篇

      本文链接:https://www.haomeiwen.com/subject/oxyzkttx.html