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

}

复习

public class 秘书

{

//字段区(只对内使用,可以是对象也可以是值类型)

员工类型 员工A = new 员工类型();// 构造方法也是方法

//属性区(专门对外使用)

// 方法区(构造方法和自定义方法)//也可以在构造方法内员工A = new 员工类型();

public 方法A()

{

员工A.工作了(); // 这里员工A是秘书的私有使用

}

}

。

在外部使用 秘书.方法A();

相关推荐
程序喵大人1 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
微三云 - 廖会灵 (私域系统开发)1 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的2 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
霸道流氓气质2 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
释厄6233 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_962885723 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
临床数据科学和人工智能兴趣组4 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
蜗牛互联网4 小时前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
SEO_juper4 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
Wang's Blog4 小时前
Java 项目实战: 交友项目 - 产品定位、功能模块与客户端原型解读
java·开发语言·交友