
如何学习面向对象编程
2019-03-12 17:01:43
微信公开课小程序热门讨论「如何学习面向对象编程」最新回复-一般的,单纯从面向对象编程这方面来说,我们需要先理解对象的概念,以及为什么我们要使用面向对象编程,以及跟传统过程化编程之间的优劣。对象(object),即将一组数据与这组数据有关操作组装在一起,形成一个实体,这个实体就是对象。用通俗的话来讲,一个人也可以算是一个对象,这个对象可能包含一些属性(attribute),例如男性女性,这个对象也会有一些功能,例如让一个人去吃饭,他能去吃饭,这就是功能(function)。我们在编程的时候,尽可能要让代码看起来更有可读性,举例当我们去写一款游戏,我们要创建人类这个类(class)//以C++为例classPerson{//这段代码定义了人这个类}我们把人类的属性和功能输入进去classPerson{public:StringName{get;set;}intAge{get;set;}voidEat(Foodfood){/**吃点东西吧**/}privite:intHeight{get;set;}}到这时这还只是个类。当类创建完毕以后我们可以实例化这个类Personp1;这个实例化出来的实体p1就是一个对象,我们可以去单独改变这单个对象的属性数据或者是调用这个类的功能(或者说方法)p1.Age=20;p1.Eat();我们还可以创建另一个人Personp2;p2.Age=22;每一个对象都可以有不一样的属性,但是他们是属于一类的,就好比姚明跟郭敬明虽然身高不同但都是人类一样。当理解了面向对象编程是为了解决何种问题以后,面向对象的编程将不是一个难题,而是一种更为丰富的编程玩法。如果把面向对象跟面向过程比较有什么不同呢?面向过程注重的是每个动作比如我们来运行一台电脑,那么我们就得打开显示器,让后打开主机,当然前提是你已经插上电源,所以我们就得描述两个过程,然后我们打开电视机,只要按个按钮,这个动作其实和按电脑的显示器是同一个过程,当然我们又得描述这个过程,如果我们用面向过程开发的话,我们就要把开电脑和开电视分开描述,那么按视频按钮就重复了两次然而我们如果用面向对象思想,把按视频按钮提取出来,然后开主机又是一个类,继承与按视频按钮,那么我们只要一次的描述按视频按钮就可以同时用于开电脑和电视机,原因是我们提取了开视频显示器的本质,所以面向对象就是我们把一件事情按一个一个动作来描述出来,而面向对象则是提取共有性质让后重复利用该类
在学习面向对象的过程中,我自己也走了很多的弯路。一般来讲,接触面向对象是做为编程语言的一部分。那时候认为在程序中写一个Class关键字就是面向对象,写ClassA:ClassB就是面向对象的继承。实际从编程语言的角度来理解是无法掌握面向对象的精髓的,在这里我想以我的经验来告诉大家我的一些方法。面向对象是一种思想理论,要远远高于编程语言。不深入理解面向对象理论就无法做到编写比较高级的软件,而且往往这些软件不能有效应对变化,不能复用,不能扩展,不能维护等。使用抽象方法还能应对软件的复杂度,因为抽象是对事物的简化方法。比如分类法就是抽象的基本方法。然后联系对行为抽象,因为分类法是主要是针对静态的东西进行抽象(淡然不排除动态),而行为是对象与对象交互方式,所以对行为抽象也具有重要的意义。思考面向对象的继承、封装以及多态软件实现为了达到应对变化,提高复用。继承的本质是提高重用,但是继承不是重用的唯一方法,还有组合这个非常重要的方法。继承从语言层面来讲可以简单理解为classA:classB,组合才是提高重用的关键,现在很多的商业上不都是要整合啊,实际就是组合的一种显示表述,自己不实际去做,但是掌握着关键的东西(核心竞争力)。那具体的上来讲,我们的软件外包不就是组合的一种现实表述吗,发达国家设计软件,而把软件的具体编码交给别的国家。多态可以简单理解为一个抽象有很多具体实现。那么在软性期间就需要动态决定采用哪种具体实现。本回答被提问者采纳 更多有关「如何学习面向对象编程」的疑问请扫码关注微信公开课+小程序!
在学习面向对象的过程中,我自己也走了很多的弯路。一般来讲,接触面向对象是做为编程语言的一部分。那时候认为在程序中写一个Class关键字就是面向对象,写ClassA:ClassB就是面向对象的继承。实际从编程语言的角度来理解是无法掌握面向对象的精髓的,在这里我想以我的经验来告诉大家我的一些方法。面向对象是一种思想理论,要远远高于编程语言。不深入理解面向对象理论就无法做到编写比较高级的软件,而且往往这些软件不能有效应对变化,不能复用,不能扩展,不能维护等。使用抽象方法还能应对软件的复杂度,因为抽象是对事物的简化方法。比如分类法就是抽象的基本方法。然后联系对行为抽象,因为分类法是主要是针对静态的东西进行抽象(淡然不排除动态),而行为是对象与对象交互方式,所以对行为抽象也具有重要的意义。思考面向对象的继承、封装以及多态软件实现为了达到应对变化,提高复用。继承的本质是提高重用,但是继承不是重用的唯一方法,还有组合这个非常重要的方法。继承从语言层面来讲可以简单理解为classA:classB,组合才是提高重用的关键,现在很多的商业上不都是要整合啊,实际就是组合的一种显示表述,自己不实际去做,但是掌握着关键的东西(核心竞争力)。那具体的上来讲,我们的软件外包不就是组合的一种现实表述吗,发达国家设计软件,而把软件的具体编码交给别的国家。多态可以简单理解为一个抽象有很多具体实现。那么在软性期间就需要动态决定采用哪种具体实现。本回答被提问者采纳 更多有关「如何学习面向对象编程」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序

「如何学习面向对象编程」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「如何学习面向对象编程」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「如何学习面向对象编程」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「如何学习面向对象编程」
微信公开课小程序热议话题「如何学习面向对象编程」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「如何学习面向对象编程」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:01:43
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>