当前位置: 首页 > news >正文

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; }        // 莱姆达写法

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

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

方法

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

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

方法有以下几种:

                           无参无返回        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.开始工作();               //  

相关文章:

  • linux 下 jenkins 构建 uniapp node-sass 报错
  • rapidocr v3.2.0发布
  • CompletableFuture异步编程的六大典型问题与解决方案
  • 从零学起VIM
  • Zama 的门限密钥管理系统(TKMS)
  • 如何利用小模型,快速筛选照片
  • Vulkan学习笔记10—描述符与统一缓冲区
  • 使用nvm管理npm和pnpm
  • 支持selenium的chrome driver更新到137.0.7151.119
  • Java课堂笔记11
  • 生产者-消费者模式在不同操作系统上的行为差异
  • 分布式选举算法<一> Bully算法
  • 要在 Linux 不联网服务器 上部署并运行 Gitee 上的 vue-vben-admin 项目,并且该项目使用的是 pnpm 管理依赖
  • LLM 支持的基于意图的分类 网络钓鱼电子邮件
  • 设计模式精讲 Day 6:适配器模式(Adapter Pattern)
  • 华为云Flexus+DeepSeek征文 | 基于DeepSeek-R1强化学习的多模态AI Agent企业级应用开发实战:从理论到生产的完整解决方案
  • 在MATLAB中绘制阵列天线的散射方向图
  • ChangeNotifierProvider 本质上也是 Widget
  • 我的256天创作纪念日
  • 二、OpenCV的第一个程序
  • 免费360地图手机版/优化关键词排名公司
  • 信息系统推广方案/seo外包服务公司
  • 帮别人做设计图的网站/今日国际军事新闻
  • 搜索引擎推广试题/seo外包一共多少钱
  • 群辉做网站服务器/百度官网网站首页
  • 北京房产网站建设/尚硅谷培训机构官网