深入Java系列——面向对象之(一)——抽象

  此次对于java的学习,可谓是很轻松的一个过渡。在软考过程中不知不觉就和她成为好盆友了。从之前的VB、C#、C++基础学习,到现在的java,一个感受就是编程语言大概都是一样的,无非都是指挥机器按照规定去干活的工具罢了 。

  至于编程思想,也就都是那么回事儿,简而言之:我们在使用计算机来解决生活中问题的过程中运用的思维方式,就是编程思想。也可以说是编程的原则,或者说是编程过程中的约定。比如说:面向对象的前辈们,就提出来要将数据及其相关行为放到一起,封装起来,作为一个类来使用,把类作为最小的程序单元。这就是一种的编程约定或者说是原则,也就是咱们耳熟能详的面向对象的编程思想了。


  在面向对象的编程思想中,其基础的就是抽象,也是面向对象思想的特征之一,也是面向对象的本质特征。此次在学习Java语言的时候,对于java中面向对象中面向对象部分做了一个小结。不当之处,还望大家可以拿出来好好交流,要是觉得讲的还可以的,帅哥美女们捧个人场,给点个赞塞!


抽象:

   从哲学的角度来讲,抽象它其实就是一个过程。一个提炼存在于事物之间共同拥有的元素的过程,就叫抽象。而这些事务之间共同拥有的元素往往是这一事物区别于其他事物关键的东西,这些元素就构成了事物的本质。所以,抽象作为面向对象的基础,其实也是面向对象的本质或者说是面向对象的核心。


   例如:现实生活中我们有男人啊、女人啊等等((当然咱们也许还要算上泰国那一群……额),从他们身上提炼共同的特征:都拥有大脑,眼睛,耳朵(属性)、……且会思考、能说话、可以直立行走(方法)……,这就是他们之间的共同元素。拥有这样特性的东西嘞,我们管他叫“人”,换句话说,只要是人就必须满足以上所有共同特征,这是人的本质特征,区别于其他事物的关键。但是满足了以上的特征还真不一定是个人,还可能是个“畜生”(例如:一些直立行走的猴子……)。上述提炼公共元素的过程就是所谓的抽象。

   编程世界中,抽象主要有两种:一种是过程抽象,将问题域中具有明确功能定义的操作抽取出来,并将其作为一个实体看待。对于软件系统结构的设计显得有些武断,并且稳定性差,导致很难准确无误地设计出系统的每一个操作环节。一旦某个客体属性的表示方式发生了变化,就有可能牵扯到已有系统的很多部分。另一种是数据抽象,数据抽象是较过程抽象更高级别的抽象方式,将描述客体的属性和行为绑定在一起,实现统一的抽象,从而达到对现实世界客体的真正模拟。后者是运用了面向对象的思想进行的抽象。由此可见抽象,并不是面向对象的专利啊……

   在数据抽象中,抽象的基础是数据及其操作,也就是对现实生活中、问题域中的对象进行抽象。随着抽象级别的提高,分别抽象出来的产品:对象——类(普通/具体类)——抽象类——接口。


你可能感兴趣的:(●编程语言,------【Java】)