Java面向对象特性总结

1.面向对象与面向过程的区别

1.面向对象和面向过程概念
面向对象对应的面向过程,面向过程强调一个过程的完成步骤。
例如:打篮球时投篮,可以分为运球,起跳和投篮三个动作,面向过程程序就是要把这三个动作逐一设计出来,然后依次运行。如果再进行一个封盖,那么可能需要无球跑动,起跳和封盖三个动作。也就是说,面向过程的程序就是针对每一个过程进行设计,依次执行程序。

面向对象则是针对于打篮球的所有动作进行设计,比如运球、无球跑动、起跳、投篮和封盖。在进行封盖时,调用之前设计好的几个对象即可。

2.面向对象和面向过程的区分
这里读到了一篇很有趣的博客,很有启发意义:
https://blog.csdn.net/jerry11112/article/details/79027834?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。

蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。

到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。

盖浇饭的好处就是”菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是”可维护性“比较好,”饭” 和”菜”的耦合度比较低。蛋炒饭将”蛋”“饭”搅和在一起,想换”蛋”“饭”中任何一种都很困难,耦合度很高,以至于”可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。

2.对象

任何事物都可以称之为对象,对象有着自己独特的特征。
对象有属性和方法组成。某个人就是一个对象,这个人的一些静态属性,比如姓名,身高和年龄就是这个对象的属性;而他的一些动作,比如唱歌,跑步就是这个对象的方法。
类表示一类具有共同属性的对象,是一个抽象的概念。比如人就是一个类,而小明,小刚等都是对象,他们都是人这个类的实例化。为什么要实例化呢,因为我们做什么都要针对具体的对象,而不是针对类这个抽象的概念。比如说我们可以问小刚的性别是什么,可以说小明在跑步,而不能抽象的问“人”的名字叫什么,“人”打篮球。

类是一个模板,是若干对象的一个抽象,所以类中也包括属性和方法,也就是成员变量和成员方法。
1.成员变量
类中的成员变量可以是Java语言中的任意数据类型。
关于数据类型,可以参考这篇文章:
https://blog.csdn.net/weixin_39420175/article/details/105111635

成员变量都有自己的默认值,作用范围是整个类;而局部变量定义时必须要初始化。

2.成员方法

3.面向对象三大特性

1.封装
2.继承
3.多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值