一、到底什么是面向过程编程,什么是面向对象编程?
面向过程编程(Procedural Programming)
定义:
面向过程是一种以过程(函数)为核心的编程范式,将问题拆解为一系列步骤(如输入、计算、输出),通过函数依次调用这些步骤来解决问题。
核心思想:
- 步骤化:程序由函数组成,每个函数完成一个特定任务。
- 数据与逻辑分离:数据存储在变量中,函数操作这些数据。
面向对象编程(Object-Oriented Programming, OOP)
定义:
面向对象以对象为核心,将事物抽象为具有属性(数据)和方法(函数)的对象,通过对象之间的交互解决问题。
核心思想:
- 封装:将数据和方法打包在对象内部(如
Car
类包含颜色属性和启动方法)。 - 继承:子类复用父类的特性(如
ElectricCar
继承Car
)。 - 多态:同一接口不同实现(如不同动物的
叫声
方法)。
小结:面向过程适合于小型项目,不需要很多代码的交互。面向对象是大型项目开发必不可少的。
维度 | 面向过程 | 面向对象 |
---|---|---|
核心 | 函数和步骤 | 对象和交互 |
代码组织 | 线性流程(如流水线) | 模块化(如乐高积木) |
典型语言 | C、Fortran | Java、Python、C++,C# |
适合场景 | 简单任务、数学计算、脚本工具 | 复杂系统、GUI应用、游戏开发 |
二、面向对象编程第一步---认识类和对象
那么什么是对象,什么是类呢?类(Class)和对象(Object)是面向对象编程(OOP)的核心概念,它们的关系如同“设计图纸”与“具体产品”。我们之前每次写程序的时候,其实就是在系统直接给我们提供的模板上的类进行代码的编写。
1. 什么是类?
- 定义:类是对象的抽象模板,描述一类事物共有的属性(数据)和行为(方法)。
- 例如:
汽车设计图
定义了所有汽车应有的颜色、品牌(属性),以及启动、刹车(方法)。
- 例如:
- 核心作用:通过类可以批量创建具有相同结构和行为的对象。
//基本概念
//具有相同的特征 具有相同的行为
//一类事物的抽象
//类是对象的模板
//可以通过类创建出对象
//类的关键词
//class
类的主要组成:
- 一类对象的特征——成员变量
- 一类对象的行为——成员方法
- 保护特征——成员属性
- 构造函数和析构函数
- 索引器
- 运算符重载
- 静态成员
事件(Event)用于定义和触发订阅-通知行为,常用于实现观察者模式。
委托(Delegate)本质是方法的类型化指针,可以视为类型安全的函数指针。
这些东西大家先了解有这些东西,后面我们再慢慢讲述
通常类是直接在命名空间进行申明的。
示例:
class Machine
{
//一类对象的特征——成员变量
//一类对象的行为——成员方法
//保护特征——成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
2.什么是类对象?
定义:对象是类的实例,通过 new
关键字创建。
关键操作:
- 使用
new
调用构造函数生成对象。 - 通过
.
访问对象的属性和方法。
类的申明 和 类对象(变量)申明是两个概念
类的申明 类似枚举 和 结构体的申明 类的申明相当于是申明了一个自定义变量类型
而对象 是 类创建的
相当于申明一个指定类的变量
类创建对象的过程 一般称为实例化对象
类对象都是引用类型的
如何实例化一个对象呢?
类名 变量名;
类名 变量名 = null;(null代表空)
类名 变量名 = new 类名();
示例:
Machine p;
Machine p2 = null;
Machine p3 = new Machine();
Machine p4 = new Machine();
这样就可以使用这个类啦。
注意!!!
命名规范:
- 类名使用大驼峰(如
Car
,ElectricCar
)。 - 属性和方法使用大驼峰(C# 习惯,如
Speed
,StartEngine()
)。
- 类名使用大驼峰(如
访问修饰符:
public
: 所有代码可见。private
: 仅类内部可见(默认)。protected
: 类内部和子类可见。
属性 vs 字段:
- 优先使用属性(如
public int Speed { get; set; }
)而非公共字段,以支持数据验证和封装。
- 优先使用属性(如
关于一个类里面应该具有什么,然后应该怎么使用,我们后面再说。我们会逐渐的深入C#的核心!