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#的核心!

相关推荐
天水幼麟1 小时前
动手学深度学习-学习笔记(总)
笔记·深度学习·学习
天水幼麟3 小时前
动手学深度学习-学习笔记【二】(基础知识)
笔记·深度学习·学习
沧海一笑-dj4 小时前
【51单片机】51单片机学习笔记-课程简介
笔记·学习·51单片机·江科大·江科大学习笔记·江科大单片机·江科大51单片机
老虎06274 小时前
JavaWeb(苍穹外卖)--学习笔记04(前端:HTML,CSS,JavaScript)
前端·javascript·css·笔记·学习·html
大苏打seven5 小时前
Docker学习笔记:Docker网络
笔记·学习·docker
Green1Leaves7 小时前
pytorch学习-9.多分类问题
人工智能·pytorch·学习
慕y2747 小时前
Java学习第十五部分——MyBatis
java·学习·mybatis
碣石潇湘无限路8 小时前
【AI篇】当Transformer模型开始学习《孙子兵法》
人工智能·学习
江山如画,佳人北望8 小时前
C#程序入门
开发语言·windows·c#
与火星的孩子对话9 小时前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip