DOTA与面向对象编程思想(1)——分述DOTA和面向对象思想

首先,必须声明这篇文章是一个业余程序员的业余之作。作为一个刚刚学习了一个月JAVA一个月Android,计算机C语言二级水平的人,大谈面向对象必然会漏洞百出,所以希望各位读者以科学的眼光去评价而不以科学的眼光去批评。

关于DOTA:

  DOTA是魔兽争霸的一款自定义地图,可支持5V5对战游戏,我是从2012年4月份开始玩的这个游戏,很晚辈、很晚辈了,到现在已经有3年有余了。这么写,好像我一直以这个游戏为职业呢,当然不会,嘿嘿,我只是一个学生,没事就才和同学们开开黑的。这个游戏特别好玩,至少是我玩过现在为止最好玩的。我老爸每次看到我玩,都会说:天天坐那,满脸愤怒,嘴里念念有词,眼睛直勾勾的,有什么好玩的。我开始也不知道怎么解释,后来我想:DOTA给了每个人在游戏中重新开始人生的机会,因为无论怎么样,你的英雄都是从1级开始,不断的成长。更有屌丝逆袭,逆天翻盘的快感。这种被称为游戏的代入感吧,我就有深刻的感觉,而且我还是个经常换号的人,哈哈,算不算更高一层的追求重启人生。当然作为一个现在仍然热爱这个款游戏的人,我在这里就不劝诫什么少玩游戏之类的话了,毕竟自己没有做到,就没脸说别人了。在玩了这款游戏之后,经常会遇到地图更新的情况。当自己感觉打得过瘾时候,也会学着保存replay。然后我就开始去思考,为什么一款游戏换个地图,就能换一个完全不同的样式呢,英雄不同了,地形不同了,物品不同了,甚至连游戏的情节都不同了,地图才8M左右,就能够几乎改变一个大型游戏的模样,而一款随随便便的手机斗地主,也得10M啊。另外,一个replay文件才不到1M,竟然能够记录一个长达1个小时的高清大电影似得游戏。我想,这应该怎么解释呢?

关于面向对象

  关于面向对象,这是一种计算机语言的编程思想,是相对于面向过程而生的编程思想。C语言面向过程的,C++和JAVA是面向对象的。在学习之前,每当问别人什么事面向过程,什么是面向对象,总会被以一个“如何把大象关进冰箱”的简单的实例给解释,并且被解释的一塌糊涂。我只能说,这种解释不是面向对象思想的解释,而是应用面向对象的思想的一个应用实例的简单展示。很少有人能够通过一个简单的应用实例看本质吧。而现在,学习了JAVA之后,我自己对面向对象的思想是这么理解的:“面向对象思想,是C语言,即面向过程的语言的库函数(一堆子函数的集合)思想的一个深度优化。”OK,说到这里,依旧会有很多人不明白,别着急,听我细细解释。首先,咱们得先说说子函数,为什么要有子函数呢?因为在编一个程序的时候,常常会重复利用同一个功能,比如比较两个数的大小。为了避免重复编写代码,我们就会编一个子函数Compare(int a, int b),把这个功能封装到一个模块,然后用到的时候,直接调用函数Compare(num1, num2),就可以了。函数库呢,就是把一堆这样的子函数,封装到一个集合,比如C语言中的头文件math.h库,里边就会有求绝对值的子函数、求最大值的子函数、求阶乘的子函数…。只要我们在编程的时候,包含这个math.h头文件,就能够直接对这些子函数调用,而不用自己编写代码了。现在你对子函数和函数库应该有了一种印象,很多东西不用知道什么原理,不用自己编写,就能够直接使用,多方便啊!而面向对象思想,就是基于“使编写的代码、函数,能够让别人不明原理,也能够轻松使用”的思想。为什么我说是深度优化呢?因为面向对象的编程过程中,几乎所有的逻辑,都是通过调用已封装好了代码完成的。1. 你需要做的只是去查询完成你实现功能需要调用哪些方法。2. 实在没有,自己先编写好一个类,把方法封装进去,然后再调用。会不会有人想:“自己编写好一个类,把方法封装进去,再调用,岂不是感觉有点绕弯子。”确实有点绕弯子,但是你要知道今天你编好的这个类,可能在某天会被别人使用,所以你把它封装好是有意义的。好了,到此为止,我对面向对象做了自己的一番描述。最后,我想以一种站得高看得远的装逼姿态说一句:面向对象源于面向过程,而终于面向过程。哈哈,不解释!

未完待续...

    

时间: 2024-10-28 10:39:04

DOTA与面向对象编程思想(1)——分述DOTA和面向对象思想的相关文章

面向对象编程的弊端是什么? 深入理解面向对象

现时C++可以说是支持OOP范式中最为常用及高性能的语言.虽然如此,在C++使用OOP的编程方式在一些场合未能提供最高性能.[1]详细描述了这个观点,我在此尝试简单说明.注意:其他支持OOP的语言通常都会有本答案中提及的问题,C++只是一个合适的说明例子. 历史上,OOP大概是60年代出现,而C++诞生于70年代末.现在的硬件和当时的有很大差异,其中最大的问题是内存墙. 内存墙,指的是内存性能严重限制CPU性能发挥的现象.在过去的20多年中,处理器的性能以每年大约55%速度快速提升,而内存性能的

(转)面向对象编程初步

1 class Hand: 2 pass 3 class Foot: 4 pass 5 class Trunk: 6 pass 7 class Head: 8 pass 9 10 class Person: 11 def __init__(self,id_num,name,hand,foot,trunk,head): 12 self.id_num=id_num 13 self.name=name 14 self.hand=Hand() 15 self.foot=Foot() 16 self.tr

Java面向对象编程三大特征 - 多态

Java面向对象编程三大特征 - 多态 本文关键字:Java.面向对象.三大特征.多态多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一.在理解多态之前需要先掌握继承.重写.父类引用指向子类对象的相关概念,对继承还没有完全明白的同学可进传送门:Java面向对象编程三大特征 - 继承. 一.抽象类 在继承中,我们已经了解了子父类的关系以及如何对子父类进行设计,如果已经存在多个实体类,再去定义父类其实是不断的抽取公共重合部分的过程,如果有需要将会产生多重继承关系.在抽取整理的过程中,除了

PHP面向对象编程详解:类和对象

PHP面向对象编程详解:类和对象 从OOP的视角看,不应区分语言.无论是C++.无论是Java.无论是.net还有更多面向对象的语言,只要你了解了OO的真谛,便可以跨越语言,让你的思想轻松的跳跃.便没有对于Java..net.PHP 之间谁强谁弱的争执了. 希望这个介绍PHP5面向对象编程(OOP)的资料能让初学者受益,能让更多的PHPer开始转向OO的编程过程. 相对PHP4,PHP5在面向对象方面改变了很多.我们将只介绍PHP5环境下的面向对象.而我们必须改变自己来跟随PHP5的发展.如果代

C#面向对象编程 封装 继承 多态

  C#面向对象编程 什么是面向对象? 面向对象编程是上个实际六十年代继面向结构编程之后提出的一个新的编程思想 封装,继承,多态 封装,继承,多态是面向对象编程的核心: 封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类).被封装的对象通常被称为抽象数据类型 意义是:保护数据不被破坏(例如一台电视机我们能使用它但是不能随意改变内部的电路) 关键字:private,public,protected,internal Public string name;

面向对象编程(Object Oriented Programming,OOP)

类是一个通用的概念,Java.C++.C#.PHP等很多编程语言中都有类,都可以通过类创建对象.可以将类看做是结构体的升级版,C语言的晚辈们看到了C语言的不足,尝试加以改善,继承了结构体的思想,并进行了升级,让程序员在开发或扩展大中型项目时更加容易. 因为Java.C++等语言都支持类和对象,所以使用这些语言编写程序也被称为面向对象编程,这些语言也被称为面向对象的编程语言.C语言因为不支持类和对象的概念,被称为面向过程的编程语言. 实际上,面向对象只是面向过程的升级. 在C语言中,可以将完成某个

python学习第十四天 -面向对象编程基础

python也是支持面向对象编程的.这一章节主要讲一些python面向对象编程的一些基础. 什么是面向对象的编程? 1.面向对象编程是一种程序设计范式 2.把程序看做不同对象的相互调用 3.对现实世界建立对象模型 面向对象编程的基本思想: 1.类用于定义抽象类型 2.实例根据类的定义被创建出来 如何定义一个类并创建实例? >>> class Animal(object): pass >>> dog = Animal() >>> cat = Animal

面向对象编程,类和对象

面向对象编程,类和对象 一.面向对象 1.什么是面向对象 ? 面向对象是一种编程思想,是前辈们总结出的经验,指导程序员如何编写出更好的程序 , 核心是对象,程序就是一系列对象的集合, 程序员负责调度控制这些对象来交互着完成任务. 2.几个案例 案例1:把大象装进冰箱 ? ? 面向过程: ? 1.打开冰箱 ? 2.装入大象 ? 3.关闭冰箱 ? 面向对象: ? 找个具备装大象的技能的对象 总结:在面向对象中程序员的角度发生改变,从具体的操作者变成了指挥者 强调:对象不是凭空产生的,需要我们自己设计

简单理解OOP——面向对象编程

OOP:面向对象编程 一. 什么是OOP 面向对象编程:Object-oriented Programming,OOP,面向对象程序设计. 面向对象编程是一种计算机编程架构,他的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成. OOP使得程序更有重用性.灵活性和扩展性.OOP的核心思想是:封装.继承.多态(重点是类和对象). 不同于POP(面向过程编程)的以过程为中心的编程思想,面向对象编程的中心思想是通过调用对象来实现想要实现的目的. 面向对象的思想: 是一种更符合我们