浅谈面向对象编程
我们都知道面向对象编程oop,但是有没有理解什么是面向对象编程,面向对象编程的4大特征是什么意思(抽象,封装,继承,多态)。今天就结合我个人的学习来个大家浅谈一下面向对象
很多人一开始学习的应该都是面向过程编程,c语言作为入门语言,因为面向过程更容易理解一些,更像是一种数学逻辑思维,应该先干什么,在什么,一步一步解决问题。面向对象却不是这样的的,面向对象是先看涉及到什么,属于那一类,这一类应该怎么做。面向过程可以实现的东西在面向对象里也可以实现。
比如现在要你实现一个动物吃东西的编程,面向过程就会考虑是这个动物是什么动物,这个动物是怎么吃得,每一个动物吃都要建立一个函数,用来实现吃东西这个功能。然后在main函数中,那一个动物就调用那一个动物吃得函数实现。
在面向对象考虑的是有那些动物,这些动物有什么共同的特征,然后把这些特征写到一个共同的父类中animal。然后在里面定义一个eat函数;这就是封装
在下面对不同的对象时,向集成就从animal中把公有的特征拿过来直接用,不用每一个类都去重新定义,在里面根据不同的动物重新把eat重写一些,换成对于动物吃得方法,比如大象的eat方法里写用鼻子喂到嘴里,在人的方法里写使用工具喂到嘴里。这就是继承。
当然,不同的人还有不同的工具,吃不同的东西还使用不同的工具,这时候我们就在eat()方法中写入不同的参数。如eat(人。食物)。不同的人和不同的食物会执行不同的方法,列如eat(中国人,面条)使用筷子,eat(英国人,面条) 使用刀叉,这种一个函数但是不同参数执行的方法不同就是多态
封装是显而易见的,计算机认识什么动物·,你必须先告诉计算机什么是动物,怎么告诉呢,使用一些数据来把动物描述出来,这样但计算机接受到这些数据,符合这些这些数据的定义,它就知道只是动物啦。这个使用数据描绘的过程就叫做封装。
面向对象相比较面向过程就是不用不同动物都去写一遍函数,可以把相同的东西封装一些,让不同的动物继承,然后再去写这些动物独有的东西就行了,这就是为什么面向对象的重用性更高,也是为什么面向对象有写多类库,因为有许多编程中常用的东西已经被人们提取出来进行封装啦,所以我们可以直接使用。
以上就是我个人对于面向对象四大特征的理解,编程博大精深,学吧。