面向对象概述:
要学习好面向对象,我们应该从三个问题入手:
1、什么是面向对象? 2、为什么要面向对象? 3、该怎么面向对象?
面向对象,首先要有一个对象,那么对象是什么呢?
对象的定义是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
因此面向对象这个对象,指的是客体。所谓客体是指客观存在的对象实体和主观抽象的概念。(摘自@赵学智《什么是对象?为什么要面向对象?该怎么面向对象》)
由此可见,对象就是一个客体,很多人认为类就是一个对象,但准确来说,对象是以类为模板创建出来的,“对象”与“类的实例”是对应的。像我们平常在编程时经常会new一个对象出来,这个方法就是将抽象的类具体化为一个对象,对象是灵活的,可以被自由定义的。
创建对象是简化编程方法的必需品,所以面向对象是编程的一个重要思想。
要理解面向对象,就要从结构性编程入手——功能分解法。即将一个大的问题分解为几个小的问题,再分解为更细小的问题,直到得到的问题可以用一个函数来实现为止。
eg.举一个简单的例子:计算出1999年5月10日到2006年3月8日期间一共有多少天?
首先,定义一个结构体类型:
1 //封装日期信息 2 public struct MyDate 3 { 4 public int Year; //定义年 5 public int Month; //定义月 6 public int Day; //定义日 7 }
然后,将算法写到一个新的函数中:
1 static int TwoDate(MyDate begin,MyDate end) 2 { 3 ...//此处填写计算时间的方法,省略 4 }
最后,使用函数进行调用:
1 MyDate d1,d2; //定义起始和结束日期 2 d1.Year = 1999; 3 d1.Month = 5; 4 d1.Day =10; 5 6 d2.Year = 2006; 7 d2.Month = 3; 8 d2.Day =8; 9 10 //计算结果 11 int days = TwoDate(d1,d2);
面向对象也与此方法雷同,不同的地方在于以下几点:
1、所有的函数都放在了一个类中,成为某个类的成员。
2、外界对象不能直接调用类的成员函数,必须先创建一个对象,再通过对象来调用这些函数。
3、函数的声明分为了public和private两种,只有public可以被外界调用,确保了私有信息的可访问性限制。
所以,采用面向对象技术开发可以达到较高的开发效率,与较低的维护成本,系统的可扩展性也更好。
那么,该如何用面向对象解决问题呢?以下几节将会详细讲述。
目录:(暂时修订,不断更新……)
一:面向对象的四大基本特性
1、封装:2、抽象:3、继承:4、多态:
二:方法的理解和应用
类的构造函数;
深入理解值类型、引用类型;
类成员的访问权限;
子类、父类;
命名空间和类库;
方法重载、隐藏与虚方法(理解即可);
抽象基类与接口;
委托;
三:事件——winform的简单使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?