JAVA拾遗系列之JAVA基础-面向对象

原创
2021/11/18 14:21
阅读数 73

一、什么是面向对象

    学习Java就是学习面向对象,在百度百科上可以看到是这么解释:

面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计软件开发,扩展到如数据库系统交互式界面、应用结构、应用平台、分布式系统网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

    很空洞的一种理论概括,理解起来却没那么容易。咱们从面向对象的四大特性来看,封装、抽象、继承、多态。

    封装,简而言之,封装就是打包,把一个东西的内部全部隐藏,只留给外界一个表象;抽象,抽象是对一些事务的特性抽取,比如男人、女人、小孩、老人都有共同的特性,两个眼睛、一个鼻子、一个嘴,那么就可以概括一下,人都是拥有两个眼睛、一个鼻子、一个嘴;继承,这就好像父亲的家产,子女可以继承一样,面向对象关系中,如果两个对象存在父子关系,那么子就可以继承父的一些属性、方法等;多态,多态是面向对象中最难理解的特性,举个简单的例子,刚刚我们抽象出了一个人,假如以他为父,通过继承我们创建出诸如男人、女人这样的子对象,因为继承了父,所以男人、女人同样拥有两个眼睛、一个鼻子、一个嘴,这个时候我们声明一个父如下:

人 男人=new 男人();
人 女人=new 女人();

    也就是说,类型不变,但可以创建出不同的子类对象,这就是多态。

    在实际开发中,要尽量贴合这种思想来进行设计,具体到代码,对象就是类的实例,要隐藏掉实例的内部实现,只公开想要公开的属性或方法,供别的对象使用,比如人这个类,可以创建出男人这个对象,提供了高兴这个方法,别的对象只要调用高兴,男人就会高兴,但具体是如何高兴,内部如何运转,这是别的对象不需要关心的事,各扫门前雪,对象只关心自身的实现,而不关心别的对象的实现。

二、为什么要面向对象

    在早期,程序设计大多是面向过程,比如C,实现一个需求,可以在一个函数里完成。但随着时代发展,系统体量不断变大,在系统开发维护时,面向过程开发会产生很多不必要的重复工作,以及后期维护,往往需要阅读整体算法才能动手修改,稍微不慎就可能引入BUG,所以,为了解决系统的可维护性,可扩展性,可重用性,面向对象逐渐被关注和推广。

三、如果培养面向对象思想

    计算机语言具有高级语言和低级语言之分,而支持面向对象的语言,大多是高级编程语言。他更贴合人们的实际生活,不像低级语言那样枯燥隐晦。所以,遇到问题,尽量以人的角度来思考,然后抽象、概括来寻求解决方案。久而久之,就可以培养出面向对象思想。举个例子来说,单体WEB服务遇到大流量崩溃问题,换算到实际生活中,就好比双十一,大家都在下单购买商品,单体WEB相当于商品的工厂,平常只有一条生产线,双十一来了,购买的人多了,生产不过来怎么办?那就多几条生产线嘛,同理使用LB负载,多启动几个单体WEB服务就好了啊,但是前提是单体WEB必须是无状态的,不然就很容易会出错。

    面向对象,并非一句两句就能说清,只是真正实践,才能领悟他的精髓,如果实在不懂,可以尝试动手码一下。

有兴趣的大佬大神可以关注下小弟的微信公共号,一起学习交流,扫描以下二维码关注即可。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部