08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

news2025/6/12 4:01:37

C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞懂类的那些事儿,就像玩一场超有趣的冒险游戏!

一、类概述:编程世界的 “乐高图纸”

在 C# 的世界里,类就像是一张超级厉害的 “乐高图纸”。你知道吗,乐高积木之所以能拼出各种各样酷炫的东西,是因为有详细的图纸告诉我们怎么组合零件。类也是这样,它定义了一组相关的数据和操作,是创建对象的 “蓝图”。对象呢,就是按照这张蓝图拼出来的乐高成品。

比如说,我们想在编程世界里造一辆汽车,那 “汽车” 类就是设计这辆汽车的图纸,它会规定汽车有哪些 “零件”(数据),比如颜色、速度、型号,还会说明汽车能做哪些 “动作”(操作),比如启动、加速、刹车。有了这张图纸,我们就能 “生产” 出一辆辆符合要求的汽车对象啦!而且,不同的类就像不同主题的乐高图纸,有的能拼出城堡,有的能拼出机器人,超级有趣!

二、声明类:绘制专属 “乐高图纸”

现在,我们要开始学习怎么绘制这张神奇的 “乐高图纸”,也就是声明一个类。在 C# 里声明类,就像给你的乐高图纸起个响亮的名字,再把需要的零件和组装步骤写下来。
声明类的语法非常简单,格式如下:

class 类名
{
   // 这里写类的成员,比如字段、属性、方法等
}

拿我们前面说的 “汽车” 类举例,声明它就像这样:

class Car
{
   // 先空着,后面再添加成员
}

class是 C# 里用来声明类的关键字,就像告诉编译器 “我要开始画图纸啦”!Car就是类名,起名字的时候要尽量清晰直观,让人一看就知道这个类是干什么的。不过要注意,类名不能和 C# 里的其他关键字重复,而且最好遵循命名规范,比如采用帕斯卡命名法(每个单词首字母大写,如CarModel)。

有了这个空的类,就相当于我们有了一张空白的乐高图纸,接下来就要往里面添加各种 “零件” 和 “组装说明”,也就是类的成员啦!

三、类成员:乐高图纸里的 “宝藏零件”

类的成员就像是乐高图纸里的 “宝藏零件” 和 “组装秘籍”,它们让类变得有血有肉,充满了生命力。类成员主要包括字段、属性、方法、构造函数等,每一个都超重要!

1. 字段:默默的 “零件小仓库”

字段是用来存储数据的,就像乐高盒子里一个个小零件,记录着类的各种信息。还是以 “汽车” 类为例,汽车的颜色、速度、型号这些属性,就可以用字段来表示:

class Car
{
   public string color;
   public string model;
   public int speed;
}

这里的colormodelspeed就是字段,public表示这些字段可以从类的外部访问,不过在实际开发中,直接用公共字段不太安全,就像把乐高零件随便扔在外面,谁都能拿走修改,容易出问题。所以,我们更多会使用属性来管理数据。

2. 属性:智能的 “零件管理员”

属性就像是一个超智能的 “零件管理员”,它比字段多了很多 “小心思”。属性不仅能控制数据的存取,还能在存取数据的时候执行一些检查操作,就像管理员会检查零件有没有损坏,合不合规格。

我们把 “汽车” 类的字段改成属性:

class Car
{
   private string _color;
   private string _model;
   private int _speed;


   public string Color
   {
       get { return _color; }
       set { _color = value; }
   }

   public string Model
   {
       get { return _model; }
       set { _model = value; }
   }

   public int Speed
   {
       get { return _speed; }
       set
       {
           if (value >= 0)
           {
               _speed = value;
           }
           else
           {
               Console.WriteLine("速度不能为负数哦!");
           }
       }
   }
}

这里,私有字段_color_model_speed就像零件的 “内室”,外面的人进不去。公共属性ColorModelSpeed通过getset访问器,控制数据的读取和写入。在Speed属性的set访问器里,我们添加了速度不能为负数的检查,这就是属性比字段强大的地方!

3. 方法:类的 “动作大师”

方法是类能执行的各种操作,是类的 “动作大师”。汽车能启动、加速、刹车,这些动作在类里就可以写成方法。方法就像是乐高图纸里的 “组装秘籍”,告诉我们怎么把零件组合起来,做出各种酷炫的动作。

class Car
{
   // 省略字段和属性定义...

   public void Start()
   {
       Console.WriteLine("汽车启动啦!嘟嘟嘟\~");
   }


   public void Accelerate()
   {
       Speed += 10;
       Console.WriteLine(\$"汽车加速了,当前速度为{Speed}");
   }


   public void Brake()
   {
       Speed = 0;
       Console.WriteLine("汽车刹车了,稳稳停下!");
   }
}

在上面的代码里,StartAccelerateBrake就是Car类的方法。void表示方法执行完后不返回任何结果,方法可以操作属性和字段,改变类的状态。

4. 构造函数:对象的 “出生证明办理员”

构造函数是一个特殊的成员,它就像是对象的 “出生证明办理员”。当我们创建一个对象时,构造函数会被自动调用,负责给对象进行初始化,就像宝宝出生时,医生会记录宝宝的各种信息,办理出生证明。

构造函数的名字和类名一模一样,而且没有返回值类型(连void都没有)。我们给 “汽车” 类添加一个构造函数:

class Car
{
   // 省略字段和属性定义...

   public Car(string initialColor, string initialModel)
   {
       Color = initialColor;
       Model = initialModel;
       Speed = 0;
   }


   // 省略方法定义...
}

现在创建Car对象的时候,就可以在 “出生” 时赋予初始值:

Car myCar = new Car("红色", "小轿车");

这样,myCar对象一 “出生”,就有了自己的颜色和型号,速度也被初始化为 0。

四、类的实例化:把 “乐高图纸” 变成实物

有了类这张 “乐高图纸”,接下来就要施展魔法,把图纸变成真正的乐高作品啦!在 C# 里,这个过程叫做类的实例化,也就是创建对象。
实例化类的语法是这样的:

类名 对象名 = new 类名(参数);

还是以 “汽车” 类为例:

Car myDreamCar = new Car("蓝色", "跑车");

这里,Car是类名,就像乐高图纸的名字;myDreamCar是我们给创建出来的对象起的名字,相当于给拼好的乐高作品贴上专属标签;new Car("蓝色", "跑车")就是按照Car类这个图纸,在内存里 “拼出” 一辆汽车对象,并且通过构造函数给它设置了初始的颜色和型号。

创建好对象后,我们就可以使用对象的属性和方法了,就像拿到拼好的乐高作品,我们可以欣赏它,还能按照说明书摆弄它的各种零件。比如:

myDreamCar.Start();
myDreamCar.Accelerate();
Console.WriteLine($"我这辆超酷的{myDreamCar.Model}{myDreamCar.Color}的!");

第一行代码调用Start方法,让汽车启动;第二行调用Accelerate方法,让汽车加速;第三行通过属性获取汽车的型号和颜色并输出。

五、访问修饰符:给类成员设置 “门禁系统”

在编程世界里,有些类成员就像私人房间,有些像公共客厅,我们需要一种方式来控制谁能访问它们,这时候就轮到访问修饰符登场啦!访问修饰符就像是给类成员设置的 “门禁系统”,决定了哪些代码可以访问这些成员。
常见的访问修饰符有publicprivateprotectedinternal

  • public:就像完全开放的公共广场,任何地方的代码都可以访问被它修饰的成员。比如前面例子里的公共方法Start,其他代码想让汽车启动,直接调用就可以。
  • private:是最严格的 “私人领地”,只有类本身的代码才能访问。前面属性例子里的私有字段_color,外面的代码根本无法直接访问和修改它。
  • protected:类似于家族内部的秘密基地,不仅类本身的代码可以访问,它的子类(后面会学到)也能访问。
  • internal:像是公司内部的办公室,只有在同一个程序集(可以简单理解为同一个项目或者相关联的项目集合)里的代码才能访问。

合理使用访问修饰符,能让我们的代码更加安全、规范,就像合理安排房间的门禁,能保护好我们的 “编程家园”!

六、总结:开启你的 C# 类冒险之旅

到这里,C# 类的基本概念我们就探索得差不多啦!从类的概述、声明,到类成员、实例化,再到访问修饰符,每个知识点都像是冒险路上的宝藏。现在你已经掌握了类的基础知识,就像拿到了 C# 世界的初级探险地图,可以开始尝试用类创建各种有趣的对象,编写属于自己的程序啦!
如果在冒险过程中遇到任何问题,或者还想深入了解类的其他知识,随时回来找我哦!祝你在 C# 的编程世界里玩得开心,创造出超级酷炫的程序!

这篇博客围绕大纲,以幽默方式介绍了 C# 类的基础。若你觉得某些部分需要补充案例,或想了解类的进阶知识,随时和我说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2407207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…

【Linux】Linux 系统默认的目录及作用说明

博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四&#xff…

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…

基于Springboot+Vue的办公管理系统

角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…