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

简介: <pre><span style="font-family:KaiTi_GB2312; font-size:18px"><span style="white-space:pre"> </span>面向对象,这个张口闭口都离不开它的一个话题。从刚开始学第一门编程语言VB时,对象这个概念就一直和我们相伴。从那以后,直到现在,面向对象的概念从未离开过我们的学习视野,不管是前段时间的软件工程或是U
	面向对象,这个张口闭口都离不开它的一个话题。从刚开始学第一门编程语言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的相似与不同之处。
	
目录
相关文章
|
5月前
|
测试技术 Python
解锁Python魔法!装饰器:让你的代码翩翩起舞,简化繁琐逻辑,让编程成为一场戏剧性的华丽变身!
【8月更文挑战第21天】在Python编程中,当需要为函数添加如日志记录、性能测试等功能时,手动重复编写相同代码既冗长又难维护。装饰器提供了解决方案:它是一种特殊函数,包裹目标函数以添加额外功能,而不改变原函数结构。装饰器增强了代码复用性、解耦及灵活性。例如,可通过装饰器轻松记录函数执行时间。更高级用法包括带参数的装饰器、多层装饰器以及使用类作为装饰器。掌握装饰器能显著提升Python代码的质量和效率。
54 5
|
8月前
|
编译器 C++
【多态】初次遇见我就爱上了多态
【多态】初次遇见我就爱上了多态
|
8月前
|
存储 JavaScript
vuex 是什么?怎么使用?哪种功能场景使用它?
vuex 是什么?怎么使用?哪种功能场景使用它?
|
8月前
|
设计模式 算法 程序员
代码之禅:从功能实现到艺术境界
【2月更文挑战第19天】 在编程世界里,每一行代码不仅仅是冷冰冰的字符组合,它们背后承载着程序员的智慧和创造力。本文将深入探讨如何将日常的编程工作提升至一种艺术境界,让代码不仅实现功能需求,还能反映出编写者的哲学思考和技术审美。我们将通过一系列实践策略和思维模式,探索如何编织出既高效又优雅的代码,使之成为技术与艺术完美结合的产物。
|
8月前
|
资源调度 JavaScript
vuex是什么?怎么使用?哪种功能场景使用它?
Vuex是Vue.js官方推荐的状态管理库,用于在Vue应用程序中管理和共享状态。它基于Flux架构和单向数据流的概念,将应用程序的状态集中管理,使得状态的变化更可追踪、更易于管理。Vuex提供了一个全局的状态树,以及一些用于修改状态的方法。
96 1
|
设计模式 Java 数据库连接
解锁设计模式的神秘面纱:编写无懈可击的代码之原型设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之原型设计模式
50 1
|
Go
终于掌握Go语言变量生命周期 新手进阶必读
终于掌握Go语言变量生命周期 新手进阶必读
294 0
|
数据库 Python
【100天精通python】Day13:面向对象编程_多态和封装,实战模拟电影院的自动售票机选票页面
【100天精通python】Day13:面向对象编程_多态和封装,实战模拟电影院的自动售票机选票页面
297 0
|
JavaScript 前端开发 安全
每种编程语言都是干嘛的!!!(初学者须知)
每种编程语言都是干嘛的!!!(初学者须知)
|
机器学习/深度学习 开发工具 Android开发
不编程也开发13个无需编程的iOS开发工具
最近很多人都想自己开发iPhone软件, 但并非每个人都知道如何编写相关代码。还好,有很多工具可以帮助非开发人员创建自己的iPhone软件,甚至不需要编程和脚本知识。这些工具有的专为小公 司打造,有的专门为特定用户打造,比如为音乐家或电子书作者打造的软件。
1858 0