5类的属性和字段
字段
用于存储数据,一般在类中访问权限设置为private,仅在本类中可以访问,防止外界直接访问。
属性
属性的作用就是保护字段、对字段的赋值和取值进行限定。
外部需要访问或者设置字段的值都应该通过属性来设置或者访问,属性就是为了保护字段
属性的本质就是两个方法组成的(get,set)。
在属性的get里判断的是字段的值,在set里是判断value的值,如果属性有get和set我们称为可读可写属性,只有get我们称为只读属性
字段和属性一般都是搭配使用,格式如下:
private string _name;//姓名字段,字段 就是用来存数据的,属性是用来设置字段的访问或者修改权限的
public string Name //姓名 字段的属性
{
get { return _name; }
set { _name = value; }
}
get { return _name; } 的内部原理如下:
public string get_Name()
{
return this._name;
}
set { _name = value; }的 内部原理如下:
public void set_Name(string value)
{
this._name = value;
}
在外部实例化一个类的实例,在对属性赋值的时候,是通过属性的set方法来对字段进行设置的,而输出属性的时候是通过调用get方法来读取字段的值。
一般可以在属性的get或者set里做一些限定,防止错误数据存入字段。
比如:创建一个人的类
private string _name;//姓名字段,字段
public string Name //姓名 字段的属性
{
get { return _name; }
set { _name = value; }
}
private int _age;//年龄字段
public int Age//年龄字段的属性
{
get { return _age; }
set//设置修改set的时候的权限
{
if (value < 0 || value > 100)
{
value = 0;
}
_age = value;
}
}
private char _sex;//性别字段
public char Sex//性别字段的 属性
{
get//设置读取get的时候的权限
{
if (_sex != '男' && _sex != '女')
{
_sex = '男';
}
return _sex;
}
set { _sex = value; }
}
//人的方法,吃喝拉撒睡
public void CHLSS()
{
Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生,我会吃喝拉撒睡", this.Name, this.Age,this.Sex);
}
在外面实例化一个对象的时候,即使年龄和性别乱写,也会有默认值
Person Zhang = new Person(); //类的实例化
Zhang.Name = "张三"; //对象的初始化
Zhang.Age = -18; //对象的初始化
Zhang.Sex = '椿';
Zhang.CHLSS();//输出结果;;我叫张三,我今年0岁了,我是男生,我会吃喝拉撒睡
在外面尽量使用属性来访问字段。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构