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

相关推荐
极小狐16 分钟前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven
钢铁男儿20 分钟前
C# 方法(可选参数)
数据库·mysql·c#
yuanpan1 小时前
.net/C#进程间通信技术方案总结
开发语言·c#·.net
烟雨迷1 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
@十八子德月生2 小时前
8天Python从入门到精通【itheima】-1~5
大数据·开发语言·python·学习
Clockwiseee3 小时前
文件上传总结
运维·服务器·学习·文件上传
苜柠4 小时前
Wpf学习片段
学习
IM1GENIUS4 小时前
.NET高频技术点(持续更新中)
c#·.net
欢乐熊嵌入式编程4 小时前
智能手表固件升级 OTA 策略文档初稿
嵌入式硬件·学习·智能手表
red-fly4 小时前
c#修改ComboBox当前选中项的文本
c#·combobox