所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

编程中说的面向对象是什么意思?

发布时间:2020-04-12 09:15:22

资讯分类:面向对象  编程  中说  人类  函数  面向对象
编程中说的面向对象是什么意思?

面向某个东西,就表明这个东西是主导因素。面向对象,那么对象就是主导因素。因此我们首先实现的不是函数,而是“类”,也即对象。首先我们知道世界上有很多类,比如人类,爬虫类,鱼类。而人类中还有超人类,变异人类,巨人类等等(仅供参考)。在面向对象时,我们实现程序,就是先实现某个类,比如“超人类”。然后我们实现它其中的一个方法,比如“cry”。这个cry方法是源自于它的父类“人类”的。如果你不实现它,那么超人类哭起来也和普通人类没有什么不同。这就是面向对象中的“继承”。而在面向过程的编程时,我们只知道方法“cry”,我们首先实现了它,而不考虑任何的其他要素。假设这个cry函数实现了人类的cry。过了一段时间,我觉得超人类可以用一滴眼泪让人起死回生,那么应该怎么编程呢?一般来说,在cry里写肯定就行不通了,得用superman_cry函数来替代。而人类的cry怎么办?我们把它改写成了human_cry。

  • 这个时候调用者就头疼了:什么时候调用human_cry,什么时候调用superman_cry呢?
  • 而且是不是每个类想要cry,就要加一个函数呢?
  • 假如我想实现超人类的其他行为,又该怎么做呢?是不是用superman_beat,superman_eat这样来增加一系列函数呢?
  • 而人类中的函数失效了以后,超人类涉及到调用人类的函数又怎么办呢?
明白了吗?在面向对象时,对象是主导,你只需要调用person.cry()函数,而不需要担心他是人类,超人类,或者是更细节的婴儿时期、青年、壮年、抑或老年。而在面向过程时,你必须给这些诸多可能进行分门别类的一个一个判断,写出众多的函数:human_cry,human_kid_cry,superman_kid_cry。在可能越来越多,项目越来越大时,函数就以指数级增长了。面向过程非常不利于解耦,对维护也有非常大的麻烦——往往写出代码的人都不能很好的搞定自己的代码。在面向对象中还有很多概念,比如组合,泛型等,这又是后话了。

编程中说的面向对象是什么意思?

最好看看objects beginning

这东西是只可议会不可言传啊!没事的时候多看看面向对象的书!

留言与评论(共有 0 条评论)
   
验证码:
Top