面向对象概念

今天上了从开学来的第二次软件工程课。好久没见赵老师了,今天一见,给很多人的第一感觉是我们换老师了。因为今天老师是带着浓貌的胡子来的,而且传的好像是车间工人穿的工装,根本不像一位大学教师。给我的感觉就是,不愧是做工程的。

赵老师讲课的开始问了一个问题:有谁知道啥是面向对象?问完,大家都很安静。稍后,赵老师调了两位同学来回答,结果是没答上来。我在心里暗想,啥是面向对象?其实我也说不清。然后赵老师就说,大致是,你们学完了面向对象程序设计,但是还不知道啥是面向对象,真是中国教育的悲哀。接下来他花了一堂课的时间来解释这个概念,我听完后感觉受益匪浅,所以有必要记录一下。

赵老师首先解释了计算机中的对象,即指内存中的对象,面向对象中的对象就是内存中的对象。然后引出面向对象的三大核心特性:封装、继承、多态。


封装,以前我真的不知道啥是封装,为啥有封装?赵老师首先介绍了一下面向过程程序设计所遇到的一些重要问题,我听到的最多就是有关变量命名的困难。在大一点的工程中,变量命名确实是一个头痛的事情,这点我有一点小感触,虽然没有做过大项目。赵老师说,为了解决这个问题,程序员想了很多解决方法,最终找到了新建一个class数据类型,说这是软件工程中质的变化,由此数据便可以封装在class中了,从而在一定程度上解决了变量命名的问题了。

然后赵老师解释了重载。重载就是函数名相同,但是函数中的形式参数的个数(说个细节,在回答问题时,有的同学说参数,意指形参。但是赵老师说工程讲究的是准确,从现在起你们都有学会准确用语。)或形式参数的属性不同(只要有一个不同),这n个同名函数就是不同的函数。这不是多态。

继承。赵老师说这是面向对象中最核心的。然后讲了父类子类,以及继承的方式(用C ++做的例子)。讲了父类和子类的关系,讲了父类中private、protected、public这三个关键词的功能。子类不能继承父类中private属性的变量或函数,protected和public属性的都可以。其实对于继承,大家对概念都理解了,只是缺乏实际编程的感受,至少我是这种感觉。

多态。赵老师说重载是一个类中的,而多态是子类和父类之间的。多态是子类中的函数继承父类中的函数,继承的函数和被继承的函数的名字和参数相同。我以前以为重载就是多态,原来不是的。


到目前为止,听赵老师的课,可以感到他的讲课内容是在讲述他的经历和做项目感触。对我还是很有受益的。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值