面向对象vs非面向对象

非面向对象更关注功能,它将一个大的问题细分成很多小功能,每个功能就表现为一个函数,通过函数之间的相互连接,完成问题的求解。使用这种功能分解方式编程会出现一个问题:当需求发生改变时,必须要修改某个函数或模块,模块的变化同时会引起其他依赖该模块的程序的正常运行,因此带来了程序不易维护和扩展的缺点。

 

面向对象编程用对象封装解决了上面的问题。利用面向对象的基本特征,并灵活使用设计模式,能给程序带来良好的可复用性、可扩展性以及可维护性。

 

面向对象有4个主要特征,它们是区分非面向对象编程的主要标志。

 

抽象:抽象包括数据抽象和过程抽象。面向过程式编程,不是把过程与数据看成一个整体,只是把客体的行为抽取出来,如果属性有变更,需要更改很多地方。而面向对象编程将数据与过程做个一个整体,并形成对象。每个对象都有自己有自己的状态,并能够根据自身当前状态完成相应的功能。

 

封装:非面向对象编程将数据与功能函数分离,在C语言中数据采用结构体方式表示,其成员变量都默认public的。面向对象采用类作为封装,其中包含了属性和方法,且都可以用public,protected,friendly,private四种不同的访问权限修饰,达到了数据隐藏的效果,提高了软件的可靠性和可维护性。

 

继承:在非面向对象编程中没有继承的概念。面向对象中的继承增加了软件的可复用性和可扩展性。

 

多态:多态依托于继承。把通用功能放在较高层次,具体实现放在较低层次,低层次的对象能对通用消息作出个性的响应。增强程序的可扩展性和可维护性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值