C#核心学习(一)面向过程与面向对象编程---初识类和对象

一、到底什么是面向过程编程,什么是面向对象编程?

面向过程编程(Procedural Programming)

定义

面向过程是一种以过程(函数)​ 为核心的编程范式,将问题拆解为一系列步骤​(如输入、计算、输出),通过函数依次调用这些步骤来解决问题。

核心思想

  1. 步骤化:程序由函数组成,每个函数完成一个特定任务。
  2. 数据与逻辑分离:数据存储在变量中,函数操作这些数据。

面向对象编程(Object-Oriented Programming, OOP)

定义

面向对象以对象 为核心,将事物抽象为具有属性(数据)​方法(函数)​的对象,通过对象之间的交互解决问题。

核心思想

  1. 封装 :将数据和方法打包在对象内部(如Car类包含颜色属性和启动方法)。
  2. 继承 :子类复用父类的特性(如ElectricCar继承Car)。
  3. 多态 :同一接口不同实现(如不同动物的叫声方法)。

小结:面向过程适合于小型项目,不需要很多代码的交互。面向对象是大型项目开发必不可少的。

维度 面向过程 面向对象
核心 函数和步骤 对象和交互
代码组织 线性流程(如流水线) 模块化(如乐高积木)
典型语言 C、Fortran Java、Python、C++,C#
适合场景 简单任务、数学计算、脚本工具 复杂系统、GUI应用、游戏开发

二、面向对象编程第一步---认识类和对象

那么什么是对象,什么是类呢?类(Class)​对象(Object)​是面向对象编程(OOP)的核心概念,它们的关系如同"设计图纸"与"具体产品"。我们之前每次写程序的时候,其实就是在系统直接给我们提供的模板上的类进行代码的编写。

1. ​什么是类?

  1. 定义对象的抽象模板 ,描述一类事物共有的属性(数据)​行为(方法)​
    1. 例如:汽车设计图定义了所有汽车应有的颜色、品牌(属性),以及启动、刹车(方法)。
  2. 核心作用:通过类可以批量创建具有相同结构和行为的对象。

//基本概念

//具有相同的特征 具有相同的行为

//一类事物的抽象

//类是对象的模板

//可以通过类创建出对象

//类的关键词

//class

类的主要组成:
  1. 一类对象的特征------成员变量
  2. 一类对象的行为------成员方法
  3. 保护特征------成员属性
  4. 构造函数和析构函数
  5. 索引器
  6. 运算符重载
  7. 静态成员
事件(Event)​ 用于定义和触发订阅-通知行为,常用于实现观察者模式。
委托(Delegate)​本质是方法的类型化指针,可以视为类型安全的函数指针。

这些东西大家先了解有这些东西,后面我们再慢慢讲述

通常类是直接在命名空间进行申明的。

示例:

cs 复制代码
    class Machine
    {
        //一类对象的特征------成员变量
        //一类对象的行为------成员方法
        //保护特征------成员属性

        //构造函数和析构函数
        //索引器
        //运算符重载
        //静态成员
    }

2.什么是类对象?

定义 :对象是类的实例,通过 new 关键字创建。
关键操作

  • 使用 new 调用构造函数生成对象。
  • 通过 . 访问对象的属性和方法。

类的申明 和 类对象(变量)申明是两个概念
类的申明 类似枚举 和 结构体的申明 类的申明相当于是申明了一个自定义变量类型
而对象 是 类创建的
相当于申明一个指定类的变量
类创建对象的过程 一般称为实例化对象
类对象都是引用类型的

如何实例化一个对象呢?

类名 变量名;
类名 变量名 = null;(null代表空)
类名 变量名 = new 类名();

示例:

cs 复制代码
 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#的核心!

相关推荐
zlbcdn27 分钟前
C#处理网络传输中不完整的数据流
c#·不完整数据流
小斌的Debug日记1 小时前
SpringBoot和微服务学习记录Day3
spring boot·学习·微服务
路有瑶台1 小时前
EXCEL学习
学习·excel
计算机视觉与OpenCV1 小时前
自动驾驶与机器人算法学习
学习·机器人·自动驾驶
筱小虾米1 小时前
Dify忘记管理员密码,重置的问题
人工智能·学习·dify
FAREWELL000751 小时前
C#进阶学习(九)委托的介绍
开发语言·学习·c#·委托
俊俏的萌妹纸2 小时前
FLinkSQL流-小试牛刀
flink·c#·linq
我的代码永没有bug2 小时前
day1-小白学习JAVA---JDK安装和环境变量配置(mac版)
java·学习·macos
浅浅2803 小时前
numpy、pandas内存优化操作整理
数据结构·经验分享·python·学习·性能优化·numpy·pandas
浅陌sss3 小时前
设计模式 --- 装饰器模式
设计模式·c#