面向对象,结合C#的初次总结

简介:
	面向对象,这个张口闭口都离不开它的一个话题。从刚开始学第一门编程语言VB时,对象这个概念就一直和我们相伴。从那以后,直到现在,面向对象的概念从未离开过我们的学习视野,不管是前段时间的软件工程或是UML,还是这段时间的C#,我们一次次与它相遇。
	面向对象,这部分的学习,在学软工视频的时候就想拿个专章来把它总结一次,可是,总觉得自己理解得还很肤浅,也写不出个所以然来。今天,在学C#视频,其中也拿了个专章又把面向对象给我们详细讲解了一遍,其中还用实例代码给我们加深理解。
	面向对象,初次总结,就从此处起航。
	回顾第一学年学习的VB语言,准确的来说,它是基于对象,面向过程的一门语言。刚开始确实不太理解,只是知道对象的范围很广泛,从生活中看,可以是一个人,也可以是一件事。在亲身经历学生信息管理系统和机房收费系统后,看着那一行行自己敲出的代码,对于面向过程的理解有了些许前进。换言之,为了实现两个系统的功能,我们都需要将其转换为一行又一行的代码,按照过程,逐步编写。
	第一,不管哪一门编程语言,面向对象的其中的一些概念还是最首要也是最基本的。
	其中,类与对象首当其冲。
	看了很多资料,也从很多不同的角度思考过,还是觉得从问题出发,自己的理解最为深刻。
	第一个问题,“这个世界是由什么组成的?”对于这个问题,不同的人会有不同的回答。一个化学家可能会说,世界是由分子和原子等等不同化学物质组成的;一个画家可能会说,世界是由不同的颜色组成的;一个社会学家可能会说,世界是由一个个人组成的;一个分类学家可能会说,世界是由不同类型的物与事组成的......作为一名程序员,从计算机编程的角度看,分类学家的答案可能更符合自己的口味。所以说,我们应该站在分类学家的角度看问题。这个世界应该是由动物、植物等组成的,动物又分哺乳动物、爬行动物和两栖动物等。哺乳动物又分为人、老虎、大象等。
	第二个问题,“什么是人类?”站在抽象的角度来看,人类都具有相同的一些行为或是特征,如每个人都有自己的年龄、性别等属性特征,而人与动物的区别,主要是人具有可以劳动、直立行走等行为特征。“人类”只是一个抽象的概念,是一个不存在的实体。但是所有具备“人类”这个群体的属性与方法的对象都叫人!这个对象“人”是实际存在的实体!每个人都是人这个群体的一个对 象。
	第三个问题,老虎为什么不是人?因为它不具备人这个群体的属性与方法,老虎不会直立行走,不会使用工具等等!所以说老虎不是人!
	从上面的三个问题看,也就很容易理解类和对象了。总言之,类描述了一组有相同特性(属性)和相同行为(方法)的对象。因此,对象的抽象是类,而类的实例是对象。
	方法,是指对象的行为。对于一个电话,它可以有接听、挂断等不同的方法。
	方法重载,是指对于不同的数据执行相似的功能。可以用于实现对于不同数据的处理。其中,参数可能不同,返回的类型可能不同,但方法名称必须相同。其实从字面上也很容易理解,即利用同一方法的重复运用,作用的对象不同而已,其中不含继承关系。
	还有一个和它很相似的概念,那就是方法重写,它是指子类的方法覆盖父类的方法,要求方法名和参数都相同。从字面上理解,即重写之中包含一种继承关系。
	接口,生活中的接口有很多,像各种开关,它可以帮助我们实现对象的功能。在C#中,一个类可以实现多个接口。对于这个概念,自己理解的还不是很清楚,也许在敲实例的过程中会有更深的理解。
	构造函数,感觉这个很陌生,在学习VB的时候也没有听说过。在C#中,它也是面向对象学习中的一部分。
	构造函数,是一种特殊的方法。简单的说,是用来给类实例化的对象赋予初始值,并且每一个类都有一个构造函数。
	析构函数,是用于执行清除操作的特殊方法。不能重载,每个类只有一个析构函数。
 	第二,对于面向对象的三个基本特征的了解。C#视频中给我们的讲解都很生活化,让我们容易理解了许多。
	1.封装。像电视机的遥控器,它就像是封装好的一个黑盒子,可以让我们调频道,具体它的内部是怎么运作的,我们并不知道。结合编程来看,VB中我们经常使用的各种控件,只需要从工具箱中拖拽到窗体就可以使用,它们也是经过封装的。C#中,用于输出的Console.WriteLine也是封装好的。封装的好处很多:减少耦合,可以自由修改类的内部实现,具有清晰的对外接口等。
	2.继承。像电视机的发展,从黑白到彩色,到高清晰,到3D,其中图像和声音的功能一直延续。结合编程来看,创建一个派生类(DerivedClass),它将继承基类(BaseClass)的特性。在C#中,一个类最多只允许从一个类中派生。也就是通常所说的单重继承。
	3.多态。像洗衣机根据衣服量的多少确定时间与次数。准确来说,多态是同一操作作用于不同对象,有不同的解释,产生不同的执行结果。
	第三,学习心得。
	对于C#的学习,自然而然地就想到了很长一段时间的VB学习。同样是一门编程语言,一定会有共通之处。不管怎么样,有了VB的基础,还是增强了一些动力的。现在C#视频也快接近尾声了,在这之中,感觉很乱,可能是没有边看视频边敲实例,对于其中的编程实例演示看起来很费劲。所以,还是得抓紧时间动手敲实例才能帮到自己吧。在实践中,一定会收获更多,更加深刻的理解面向对象,更加清楚的看到它与VB的相似与不同之处。
	
目录
相关文章
|
10月前
R编程-实例
R编程-实例
|
12月前
|
设计模式 算法
第40/90步《番外篇》第2章 面向对象和设计模式实例讲解 第12课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第12课 行为型模式三:策略模式、职责链模式和中介者模式
43 0
|
12月前
|
设计模式
第37/90步《番外篇》第2章 面向对象和设计模式实例讲解 第9课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第9课 创建型模式二:建造者模式和原型模式,这节课练习建造者模式和原型模式。
33 0
|
12月前
|
设计模式 前端开发
第35/90步《番外篇》第2章 面向对象和设计模式实例讲解 第7课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第7课 面向对象的6个基本原则,这节课我们首先看一看设计模式背后蕴藏的面向对象思想,以此作为我们打开设计模式殿堂大门的开端。学习设计模式,重在学习面向对象的基本思想,而非模式本身。
33 0
|
12月前
|
设计模式
第43/90步《番外篇》第2章 面向对象和设计模式实例讲解 第15课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第15课 结构型模式二:代理模式和适配器模式
49 0
|
12月前
|
设计模式
第41/90步《番外篇》第2章 面向对象和设计模式实例讲解 第13课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第13课 行为型模式四:访问者模式、解释器模式和备忘录模式
34 0
|
12月前
|
设计模式 JavaScript
第38/90步《番外篇》第2章 面向对象和设计模式实例讲解 第10课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第10课 行为型模式一:迭代器模式和观察者模式
40 0
|
12月前
|
设计模式
第36/90步《番外篇》第2章 面向对象和设计模式实例讲解 第8课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第8课 创建型模式一:单例模式和工厂三枝花,这节课主要学习 4 个创建型设计模式:单例模式、简单工厂模式、工厂方法模式和抽象工厂模式。
30 0
|
12月前
|
设计模式
第42/90步《番外篇》第2章 面向对象和设计模式实例讲解 第14课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第14课 结构型模式一:组合模式和外观模式
41 0
|
12月前
|
设计模式 安全 JavaScript
第44/90步《番外篇》第2章 面向对象和设计模式实例讲解 第16课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第16课 结构型模式三:装饰模式、桥接模式和享元模式
53 0