java什么是面向对象----三层理解

17 篇文章 0 订阅

      我朋友说,没有十年java开发功力,不会理解什么叫做面向对象,很简单的定义,但是往往,一般只是知道有这个意思,可以理解,但是观点概念没有深入到想法里面,就完全没有用。在编程过程中就不会想起来,去理解别人代码时候,会出现困难。简而言之,就是没有用。就像有人和高中生说好好学习,高中生能理解明白,但是就是不这么做。。。所以 要深入明白,思考明白,才会真正用。

     

      面向对象第一层理解:

      对概念明白:万物皆对象。 

     会使用面向的对象的语法 : 

     Person person=new Person();      

     person.walk();

     知道set,get 方法,能熟练的调用 API方法。。。

 

      面向对象的第二层理解:

      对象其实是一个由成员变量组合起来,用于临时存一些数据的一个东西,我们通过调用对象的方法去使用这些数据,这样做的目的一般来说有两个:一是修改了成员变量的值,二是利用成员变量进行计算返回一些数据,一般来说,方法都是单功能的,还有可能方法兼职两个功能都有,然而根据单一原则,这种情况在设计优良的程序中比较少见。

      而对象方法里面用于计算的数据来源于三个地方:第一个地方是方法的形参,第二个就是对象的成员变量,第三个就是系统的一些数据,或者是静态的全局变量。通过这样的方法,就能完成一些操作。即使是不知道对象里面的源码,知道这个方法是做什么的就行。  

      也就是对象就是拥有一些数据和一些计算方法的这样一个集合体。就像生物学中的细胞一样,像化学中的原子一样。在编程中对象就是原子,是细胞。 对象 其实就是 拥有数据和方法的集合体~

      理解到这一层,基本上可以看明白一些源码,容易理解一些源码的东西,看明白java编程设计模式。

     

      面向对象的第三层理解:

      面向对象其实是一种思想,而不是仅仅的java的对象。面向对象即面向对象思想。小到java对象,大到程序中的模块,程序架构,再到公司运营,公司与公司之间的合作都是用的面向对象的思想。java对象调用使用,调用对象,输入一些数据,返回想要的数据。对java对象的内部,完全就不用知道,只是调用,返回而已。  程序中的模块也是一样,用接口来通信,只是传过去数据 返回来数据,用简简单单的几个接口,调用整个复杂的程序模块,调用者完全不用知道内部实现,只需要传过去需要的参数。 程序之间的生态也是一样,用简单几个接口调用与返回。不用知道里面程序做了什么 只需要调用而已 ,只需要调用几个接口来实现复杂的操作。  那么在我们编程时候,也要秉着这种思想。对外成黑盒状态,复杂逻辑自己实现------如果程序是这种原则设计,那么程序就是模块化的编程,架构师一般做的就是这种设计。  这样做的好处是,哪一个模块调用之后出现问题,就修改测试哪一块,整个系统完全不用修改。哪个对象调用出现问题,就去修改哪个对象。模块化编程思想即为 面向对象编程思想。  在实际生活中也可以用此思想  ----> 领导布置任务给员工,只需要输入任务的一些必要的东西 ,然后等员工做完汇报,领导往往不需要知道你员工具体做了什么,怎么做的这个事情,遇到了什么困难,解决用多长时间.... 员工相对于领导是黑盒,领导只需要拿到员工的回馈 返回值即可。。。  公司与公司之间合作也是  A公司需要一个什么东西  B公司提供这个服务, A公司把自己想要的东西给B公司, B公司就运作啊运作,然后返回给A公司 A公司想要的东西  A公司不需要知道B公司怎么做这项服务 ,只需要几个接口人和B公司做对接,从A公司高层来说 A公司提供一些东西给B公司,B公司返回来一些东西 ,不需要知道谁做的,什么困难,只需要结果。如果为A公司提供服务的有B公司 还有C公司,如果产品最后出现问题,该B公司的 就找B公司,该C公司的就找C公司,这样A公司的业务就可以模块化了,就是以面向对象思想来提供A公司业务模块化管理。

      理解到这个程度,能比较容易地明白源码设计,在自身设计代码架构时候,有很好的指导作用,理解java中抽象和具体实现分层。理解java中 interface接口设计的用意。即 接口为抽象层,具体的实现类为其实现层。调用时候是抽象层的做的 ,而实现层用于实现,用于测试这一块的问题。能够熟练的使用23种设计模式去编写代码。代码的质量将有质的飞跃。能用编程思想去思考和解决现实生活中的问题。理解公司之间的合作和领导的意图

 

 

 

    以上~

     

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值