class对象【C#】2025复习

对象 

西方思想是:复杂的事让秘书去做就行。老板只需简单的下达命令。

代码格式如下

        秘书类型        秘书A  =   new    秘书类型();

.

        秘书A.开始工作();                //  调用实例对象的方法

特别注意的是,程序只会用到  秘书A,秘书B,秘书C,。。。。不会用到秘书类型。

秘书类型只相当于图纸,程序只会用到图纸生产出来的实例对象【秘书A就是实例对象】,而且C#不需要关心销毁对象。

对象设计

电脑是不知道对象的,所以你需要描述告诉电脑什么是对象。     //   描述出对象类型

        一个class对象包含 {字段,属性,方法}。

东西要先拥有后,才能使用。就像你买了PLC,你不编程,按机器按钮是不会启动机器的。

最简写的对象是:字段 + 方法

字段:对象能用数字表示的东西,如年龄,身高等。

方法:就是不能用值类型表示,唱歌,跳舞等。行为用方法表示。

.

        class        秘书类型

        {

          public     int       年龄 = 18;                        //  字段

          public      void        开始工作()                     //  方法

                                {

                                        步骤1;

                                        步骤2;

                                        步骤N;

                                }

        }

字段

                秘书A.年龄  = -18 ;

字段使用时会有问题,比如年龄给负数,-18岁。语法上是正确的,但不符合实际情况。

所以衍生出了属性。用于限制输入值的范围,如0~140;

public    int  年龄{  get;  set { if(value>0 && value<100)}   //编译器自动生成一个内部的年龄,只是我们看不到而且。不推荐这种写法。

.

我们应该显示的定义一个私有字段【_年龄】,然后定义一个属性【年龄】,把属性的值,给私有字段。这样才能保证年龄值不出错。

.

        class        秘书类型

     {

      private     int       年龄 = 18;                        //  变量

     // 这里属性到变量,起到数据隔离的作用,保证数据不出错。

      public      int     年龄属性{get  return  年龄;set{if(value>0&&value<140)年龄=value;}

      public      void        开始工作()                     //   行为

                                {

                                        步骤1;

                                        步骤2;

                                        步骤N;

                                }

        }

// 变量名和属性名不能重名,可以这样写【_年龄,年龄】

属性是用来跟外界交互的,不用public就没意义了。虽然字段也可以,但字段不安全。

一个class对象包含 {字段,属性,方法}。

到这里        

秘书类型        秘书A  =   new    秘书类型();

.

        秘书A.年龄属性  = -18 ;                //  这里是输不进去的。数据防呆

常用属性写法有

public int MyProperty { get; set; }        //编译器默认会生产一个私有MyProperty的字段变量

.

private int myVar;

public int MyProperty { get { return myVar; } set { myVar = value; } }        //推荐用这种

.

public int MyProperty { get; private set; }

.

public int MyProperty { get; set; } = 50;        //带默认值

.

public int num;

public int MyProperty { get=>num; set=>num=value; }        // 莱姆达写法

=================================

以上的属性,可以看作是一个方法。可以对值做逻辑判断,然后报警写入日志等。

属性和字段是配合使用的。属性的本质是方法,用来保护字段的值【数据隔离】 

字段:主要是内部使用,所以一般都是private修饰的变量。注意:公有字段不能被控件识别

属性:主要是外部使用,所以必须是public修饰。作用:1业务扩展2控制字段读写

方法

函数,方法,行为,功能,是同一个意思。只是称呼不同而已。【番茄,西红柿】

方法就是对象的行为描述。对象有哪些功能。这些行为都需要自己去编写【对象的功能】

方法有以下几种:

                           无参无返回        void        开始工作();

                           有参无返回        void        开始工作(int  参数A);

                           无参有返回        int           开始工作();

                           有参有返回        int           开始工作(int  参数A,int  参数B);

秘书类型        秘书A  =   new    秘书类型();       //这里也是方法调用,调用无参构造方法

秘书类型        秘书A  =   new    秘书类型(身高1米8);       //调用有参构造方法

.

    秘书A.开始工作();                //  无参

    秘书A.开始工作(工作8小时);                //  有参

    秘书A.开始工作(工作8小时,加班4小时);    //  有参,不要超过4个,否则参数用对象传

   int  工作结果  =  秘书A.开始工作();               //  

方法种类:

                实例方法                                          // new后的实例,再调用方法。

                静态方法(抽象方法,虚方法)       //要用类型去调用

                构造方法(对象初始化器)

构造方法

秘书类型()           //编译器默认提供一个无参构造方法

        秘书类型(int A,int B)

        秘书类型(int A,int B,int C)

        :this(A,B)        //调用构造重载        :base 是调用父类重载

        {

                this.表示实例对象的

                base.表示父类的

        }

对象初始化器

                        //用来初始化实例对象

秘书类型        秘书A  =   new    秘书类型()              //属性之间用逗号隔开,

                                                  {                                最后一个属性不需要逗号

                                                     年龄属性 = 18

                                                   }

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

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

相关文章

Qt程序启动动画

一、Qt有3种方式实现程序启动动画&#xff08;介绍&#xff09; 1、QSplashScreen 静态图片(png、jpg等格式) 2、QMovie 动态图片(gif格式) 3、QAxWidget 视频(swf格式) 1.QSplashScreen 静态图片(png、jpg等格式) //创建启动动画类实例 QSplashScreen splash(QPixmap(&qu…

贪心算法经典问题

目录 贪心思想 一、Dijkstra最短路问题 问题描述&#xff1a; 贪心策略&#xff1a; 二、Prim 和 Kruskal 最小生成树问题 Prim 算法&#xff1a; Kruskal 算法&#xff1a; 三、Huffman树问题 问题描述&#xff1a; 贪心策略&#xff1a; 四、背包问题 问题描述&a…

零知开源——STM32F4实现ILI9486显示屏UI界面系列教程(一):电子书阅读器功能

本教程将详细介绍如何在零知增强板上使用3.5寸ILI9486显示屏实现电子书阅读器功能。我们将使用LVGL库构建用户界面&#xff0c;并实现翻页、进度显示等核心功能。 目录 一、硬件连接 二、软件UI组件实现 三、零知IDE配置 四、演示效果 五、常见问题解决 六、总结与扩展 一…

支持selenium的chrome driver更新到137.0.7151.119

最近chrome释放新版本&#xff1a;137.0.7151.119 如果运行selenium自动化测试出现以下问题&#xff0c;是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…

架构下的最终瓶颈:数据库如何破局?

在分布式系统和云原生架构逐渐成熟的当下&#xff0c;我们已能够灵活扩展计算资源、水平扩展服务节点、拆分业务模块等。然而&#xff0c;在经历过多轮架构优化之后&#xff0c;数据库常常成为系统的“最后瓶颈”。尤其当数据量、并发量、实时性要求剧增时&#xff0c;数据库即…

湖北理元理律师事务所小微企业债务重组方案:司法与经营的共生逻辑

小微企业债务问题常陷入“救企业还是保老板”的困局。湖北理元理律师事务所为某汽车零部件供应商设计的“经营性债务重组”方案&#xff0c;提供了创新解题思路。 核心矛盾拆解 该企业面临三重困境&#xff1a; 矛盾类型 具体表现 法律风险等级 担保链危机 老板个人担保牵…

FastAdmin退出登录不提示的修改方法

修改退出登录后的提示行为 在FastAdmin中&#xff0c;默认退出登录后会显示"退出成功"的提示信息并跳转页面。要实现不显示提示信息直接跳转&#xff0c;可以通过以下方式修改&#xff1a; 方法一&#xff1a;修改控制器逻辑 找到application/admin/controller/Log…

工信部发布《中国工业软件产业发展研究报告(2025)》:PLM垄断加剧,Ai为国产PLM软件发展契机

在6月17日上午举行的2025南京软件大会开幕式上&#xff0c;工信部电子第五研究所现场发布《中国工业软件产业发展研究报告&#xff08;2025&#xff09;》&#xff08;以下简称《研究报告》&#xff09;&#xff0c;并从工业软件产业发展现状、产业发展趋势&#xff0c;以及我国…

Flutter JSON解析全攻略:使用json_serializable实现高效序列化

引言&#xff1a;为什么我们需要JSON序列化工具&#xff1f; 在现代移动应用开发中&#xff0c;与服务器进行数据交互是必不可少的功能。JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;因其易读性、简洁性和广泛支持性&…

shelve模块的使用

shelve模块的使用 1. 什么是Shelve2. Shelve模块的数据存储与读取3. Shelve的读取数据4. Shelve模块的高级操作_ Shelve的数据更新和删除5. 删除操作可以使用del语句&#xff1a;6. Shelve的数据查询和处理_使用for循环来遍历Shelve对象中的所有键值对&#xff1a;7. Shelve模块…

python大学校园旧物捐赠系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

Python爬虫实战:研究eventlet库相关技术

1. 引言 在当今信息爆炸的时代,网络上的数据量呈现出指数级增长的趋势。从海量的网络信息中获取有价值的数据并进行分析,对于企业决策、学术研究以及个人兴趣等方面都具有重要意义。网络爬虫作为一种自动化获取网页内容的技术手段,应运而生并得到了广泛的应用。 网络爬虫(…

文字识别接口-智能文本处理-文字提取技术

文字识别接口&#xff0c;顾名思义&#xff0c;就是一种将图像文字或手写文字转换为可编辑文本的技术。文字识别接口&#xff0c;基于深度学习算法与自主ocr核心实现多种场景字符的高精度识别与结构化信息提取&#xff0c;现已被广泛应用于银行、医疗、财会、教育等多个领域。 …

Redis的持久化机制详细解析

Redis的持久化机制详细解析 今天我们来聊聊Redis的持久化机制。想象一下&#xff0c;你正在玩一个非常精彩的游戏&#xff0c;突然断电了&#xff0c;如果没有存档功能&#xff0c;所有的进度都会丢失&#xff0c;是不是很崩溃&#xff1f; Redis作为内存数据库&#xff0c;同…

2025年SYN-CC混合攻击防御实战:某金融平台抵御800Gbps双重风暴实录

“你以为防住SYN Flood就能高枕无忧&#xff1f;新型SYN-CC混合链正在撕裂传统防御体系&#xff01;” 一、事件现场&#xff1a;一场精准的“协议层绞杀” 2025年5月&#xff0c;某跨境支付平台遭遇史上首次SYN-CC混合攻击&#xff0c;峰值流量达 800Gbps&#xff0c;核心交易…

JSON 编辑器:从语法到数据处理(二)

JSON 编辑器&#xff1a;从语法编写到结构可视化&#xff08;一&#xff09;-CSDN博客 在上一篇中&#xff0c;我们了解了 JSON 的语法和编辑器&#xff0c;解决了 “怎么写对 JSON” 的问题。 而实际开发中&#xff0c;更关键的是 “怎么高效处理 JSON 数据” —— 如何从商品…

按键开关的结构、功能与环保安全?

工业控制的核心触手&#xff1a;深度解析按键开关的结构、功能与环保安全 一、 结构基石&#xff1a;双触点转换机制 按键开关的核心在于其精妙的触点系统。绝大多数按键开关都配备有两对独立的触点&#xff0c;这是实现复杂控制逻辑的基础。每一对触点并非随意组合&#xff…

BigDetection:改进目标检测器预训练的大规模基准之论文阅读

摘要 近年来,多个数据集和开放挑战已被引入用于目标检测研究。为了构建更通用且强大 的目标检测系统,本文提出了一个新的大规模基准数据集,称为 BigDetection。我们的目标是 整合现有数据集(LVIS、OpenImages 和 Object365)的训练数据,并遵循精心设计的原则,构建一个更…

Linux系统移植⑨:uboot启动流程详解-bootz启动Linux过程

Linux系统移植⑨&#xff1a;uboot启动流程详解-bootz启动Linux过程 bootz 是 U-Boot 中用于启动 Linux 内核的命令&#xff0c;专为处理 zImage&#xff08;压缩内核映像&#xff09; 设计。 启动 Linux 的完整过程&#xff1a; 1. 加载内核与相关文件 U-Boot 先将以下文件…

【R】基于R实现贝叶斯分析(一)

文章目录 贝叶斯简介Why R理论基础一、三种先验分布和对应后验的计算1. 离散先验2.Beta先验&#xff08;共轭先验&#xff09;3. 直方图先验 二. 后验抽样1. 网格点采样法2. 其他方法 三、贝叶斯推断1. 参数估计(1) 后验均值(2) 后验方差(3) 后验区间 2. 假设检验3. 预测(1) 先…