zoukankan      html  css  js  c++  java
  • 2011年上软件工程课写的一篇关于面向对象的博客

    面向对象概念

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

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

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

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

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

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

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

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

  • 相关阅读:
    Benelux Algorithm Programming Contest 2016 Preliminary K. Translators’ Dinner(思路)
    Benelux Algorithm Programming Contest 2016 Preliminary Target Practice
    Benelux Algorithm Programming Contest 2016 Preliminary I. Rock Band
    Benelux Algorithm Programming Contest 2016 Preliminary A. Block Game
    ICPC Northeastern European Regional Contest 2019 Apprentice Learning Trajectory
    ICPC Northeastern European Regional Contest 2019 Key Storage
    2018 ACM ICPC Asia Regional
    2018 ACM ICPC Asia Regional
    Mybatis入库出现异常后,如何捕捉异常
    优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止
  • 原文地址:https://www.cnblogs.com/gmailcs/p/4864605.html
Copyright © 2011-2022 走看看