面向对象,结合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的相似与不同之处。
	
目录
相关文章
|
自然语言处理 Java 编译器
C#OOP之一面向对象简介
C#OOP之一面向对象简介
66 0
|
3月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
77 0
|
6月前
|
存储 开发框架 安全
C# .NET面试系列二:面向对象
<h2>面向对象 #### 1. 什么是构造函数? 构造函数(Constructor)是一种特殊类型的方法,它在创建类的实例(对象)时被调用,用于初始化对象的状态。构造函数的名称必须与包含它的类的名称相同,并且没有返回类型。 主要特点和用途包括: 初始化对象: ```c# 构造函数主要用于初始化类的实例。当使用 new 关键字创建类的对象时,构造函数会被调用,确保对象在使用之前处于一个合适的状态。 ``` 与类同名: ``` 构造函数的名称必须与包含它的类的名称完全相同。 ``` 没有返回类型: ```c# 构造函数没有返回类型,甚至不能声明 void。它的目的是初始化对象
88 0
|
设计模式 算法 C#
28【WinForm】C#实现商场收银软件,从面向过程到面向对象,设计模式的应用
实现商场收银系统从简单的面向过程到面向对象的演变。
166 0
|
数据可视化 程序员 C#
C# 面向对象三大特性
C# 面向对象三大特性
109 0
C#视频之面向对象
C#视频之面向对象
64 0
C#面向对象知识
C#面向对象知识
46 0
|
存储 开发框架 Java
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术