20230703_092134 csharp 字段的封装 属性的get与set代码段
什么是封装
把属性进行封闭
不让外部来访问
情景例子
小明把自己的内心封装起来
其他人再也无法得知他的内心想法
为什么要封装
如果不对属性进行封装
其它伙伴程序员可能会对这个属性进行不合适的操作
例子:
把学生对象的年龄设置为一个不合适的值
// 定义一个学生对象 xm
Student xm = new Studnet();
// 对xm的年龄进行修改
xm.age = 10000;
为了防止这种现象的出现
我们会对age属性进行封装
封装后的结果是
其他伙伴程序员就无法操作age这个属性了
怎样去封装
如何通过代码的形式让age变成不可访问的
通守关键词
private
来让属性进行封装
名词
在c#中需要区分两个名词
字段(类中的成员变量)
属性 (具有get与set代码段的变量)
演练环节
新建一个项目
在项目入口处先编写卡顿的代码
static void Main(string[] args)
{
// 卡顿
Console.ReadLine();
}
编写目标逻辑
// 实例化一个学生对象
// 设置这个学生对象的年龄
// 让这个学生对象说出自己的信息
定义学生类
class Student
{
// 定义一个年龄的字段,把这个字段封装
private int age;
}
对age字段进行封装
双击选中字段age
右击
重构
封装属性
封装成功后
class Student
{
// 定义一个年龄的字段,把这个字段封装
private int age;
// 把age字段进行封装后得到的属性Age
public int Age
{
get { return age; }
set { age = value; }
}
}
封装操作到此完成
get与set
当对属性进行取值操作时,会触发get代码段
当对属性进行赋值操作时,会触发set代码段
给对象赋值
// 对象.属性 = 值; (设置值,会触发属性的set方法)
xm.Age = 10000;
获取对象的值
// 对象.属性 (获取值,会触发属性的get方法)
Console.WriteLine(xm.Age);
演练
类的定义
定义一个人类
People
给它定义一个name字段
把name字段进行封装
给它定义一个age字段
把age字段进行封装
对象的操作
在入口
实例化一个人的对象
变量名为lb
设置lb的名字为
吕布
设置lb的年龄为
28
编码完成这个需求
发送截在自己单元格
演练2
设置年龄时
如果年龄大于130岁或者年龄小于0岁
我们让年龄的值为18岁
获取年龄时
如果年龄大于30岁
那么返回30岁
如果年龄小于等于30岁
就返回实际年龄