news 2026/7/7 20:45:18

属性的set和get访问器,构造函数和析构函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
属性的set和get访问器,构造函数和析构函数

属性的set和get访问器

internal class Program
{
static void Main(string[] args)
{
//属性:public int Age{get;set},一般不存储数据,可以公开接口,可以在外部进行访问
//字段:private int age 字段可以存储数据,一般定义成私有的,目的保证数据的安全性


//如果对类里面的字段进行限制、或者拦截处理 ,可以在属性的set和get访问器里面进行条件设置。
//set和get访问器 其实就是方法
//set访问器:给字段设置值的方法,带一个参数,一般起成value, 把value赋值给字段、
//get访问器:获取字段值的 带返回值的 return 字段;

People p1 = new People();
p1.Name = "嘉伟"; //在属性赋值的时候 set访问器执行了
p1.Age = 20;
Console.WriteLine(p1.Name+p1.Age+"-----------");//在获取值的时候 get服务器执行了

//如果想对属性进行设置限制了,可以set和get访问器当中进行设置
People p2 = new People();
p2.Name = "冰冰";
p2.Age = 20;
Console.WriteLine(p2.Name + p2.Age + "+++++++");

Console.ReadKey();
}
}
class People
{
//1 原始的set和get写法: 写私有的字段 再写公共属性,添加set和get
private string name;//私有的字段
public string Name //公共的属性, 目的在外部进行范围
{
get
{
//通过Name获取值 本质获取name的值
Console.WriteLine("11111111111111111");
return name+"视觉67班";
}
set
{
//设置值通过Name 给name进行赋值,value设置的值
Console.WriteLine("222222222222222222"+value);
value = "嘉伟";

name = value;
}
}

//2 如果不想对属性进行任何操作 可以优化写法
private int id;
public int Id { get { return id; } set { id = value; } }


//3 C#提供字段和属性的语法糖的写法,可以简写一句
public bool Sex { get;set; }


private int age;
public int Age {
get
{
return age;
}
set
{
if (value<0||value>200)
{
//throw 抛出,Exception异常
//异常的描述信息
throw new Exception("年龄不可能小于0也不可能大于200");

}
age = value;

}

}
}

构造函数

internal class Program { static void Main(string[] args) { //构造函数目的:创建对象,在构造函数给对象成员赋初始值 //默认有一个无参数的构造函数, 类名与方法名一样,不要写有无返回值 //也可以定义带参数的构造函数 Girls g1 = new Girls(); // g1.Name = "沪上阿姨"; Console.WriteLine(g1.Name +"---"); Girls g2 = new Girls(); Console.WriteLine(g2.Name + "---"); Aircraft a1 = new Aircraft("波音747","客机","白","波音公司",100,200); Console.WriteLine(a1.Name+a1.Type+a1.Color+a1.Company+a1.Speed+a1.Allcount+a1.PlaneType+a1.Count); Console.ReadKey(); } } public class Girls { public string Name { get; set; } public string Hair { get; set; } //无参数的构造函数 public Girls() { Name = "Baby"; Hair = "长头发"; } } //飞机类 //封装一个类:Aircraft,拥有属性:牌子、型号、颜色、隶属公司、飞行速度、装载人数、飞机类型(大中小(400-200-100)由装载人数自动设置)、当前飞机装载的人数(随机生成) public class Aircraft { public string Name { get; set; } public string Type { get; set; } public string Color { get; set; } public string Company { get; set; } //公司 public int Speed { get; set; } //速度 public int Allcount { get; set; } //装载人数 public string PlaneType { get; set; } // 飞机类型 大中 小 public int Count { get; set; } //当前人数 private Random r = new Random();//随机数对象 //定义有参数的构造函数 public Aircraft(string n,string t,string c,string com,int s,int all) { Name = n; Type = t; Color = c; Company = com; Speed = s; Allcount = all; // 传递100 200 400 Count = r.Next(0, Allcount); //当前人数 if (Allcount == 100 ) { PlaneType = "小飞机"; } else if (Allcount == 200) { PlaneType = "中飞机"; }else { PlaneType = "大飞机"; } } }

析构函数

nternal class Program { static void Main(string[] args) { //析构函数:当对象不使用时候,会把对象设置为null,再通过GC(垃圾回收机制)进行回收的时候 触发析构函数 //析构函数的特点:方法名还是类名 只不过在方法名前加一个~ People p1 = new People() { Name="zs"}; p1 = null; //把p1置为null People p2 = new People() { Name = "李四" }; People p3 = p2; p2 = null; p3 = null; Console.WriteLine("请按任意键进行回收"); Console.ReadKey(true);// 用户按键之后再往下执行 GC.Collect();//回收置为null内存空间 Console.ReadKey(); } } class People { public string Name { get; set; } //析构函数:方法名还是类名 只不过在方法名前加一个~ ~People() { Console.WriteLine(this.Name+"被释放了"); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 19:27:32

36、《Interact 命令的深入应用与技巧》

《Interact 命令的深入应用与技巧》 1. 超时值与动作执行 超时值 -1 等同于无穷大,与之关联的动作永远不会被执行。当无法提前确定是否需要超时时,这种设置很有用。可以通过合适的变量赋值来抑制超时,而无需动态重写 interact 命令。 对比以下两种情况: interact ti…

作者头像 李华
网站建设 2026/7/7 19:14:36

49、Expect 扩展使用指南:配置、差异与实践

Expect 扩展使用指南:配置、差异与实践 1. 输出控制与调试信息 在使用相关功能时,有几个关键变量用于控制输出和调试信息。 - exp_loguser :若该变量非零, expect 函数会将派生进程的所有输出发送到标准输出。由于交互式程序通常会回显输入,这通常足以显示对话的…

作者头像 李华
网站建设 2026/7/7 12:31:43

Java面试,问八股文的面试官水平很次?

相信很多朋友出去面试&#xff0c;整体的感受和反馈是&#xff1a;形势依旧很严峻&#xff0c;面试难度和拿offer的难度依然不减&#xff0c;譬如Java&#xff0c;都卷成麻花了大家去面试还是要早做准备&#xff0c;做好充分备战工作&#xff0c;不要盲目投递简历。近期也抽了一…

作者头像 李华
网站建设 2026/7/7 14:14:31

EmotiVoice语音合成中的口音模拟能力测试报告

EmotiVoice语音合成中的口音模模拟能力深度解析 在虚拟主播越来越频繁地出现在直播间、智能音箱开始用“家人的声音”提醒你吃药的今天&#xff0c;语音合成技术早已不再是简单地把文字读出来。用户期待的是有温度、有情绪、甚至带着一点“地方味儿”的声音——那种一听就知道“…

作者头像 李华
网站建设 2026/7/7 10:57:34

55、高级MS - DOS编程全解析

高级MS - DOS编程全解析 1. 段定义相关指令与操作 在汇编语言编程中,段定义是非常重要的概念,涉及到多个关键指令和操作。 - SEGMENT指令 :其目的是定义一个段,为程序中的代码、数据或堆栈等划分区域。 - SEG运算符 :返回段地址。 - ASSUME指令 :用于告诉汇编…

作者头像 李华
网站建设 2026/7/7 8:57:54

58、深入理解常见指令集

深入理解常见指令集 在计算机编程和系统操作中,指令集是非常重要的一部分,它决定了计算机能够执行的基本操作。下面将详细介绍一系列常见的指令及其功能、格式。 1. 数据转换与标志位操作指令 CDQ(Convert Doubleword to Quadword) :该指令用于将双字扩展为四字(IA -…

作者头像 李华