二十二、封装

1.隐藏内部细节,开放对外窗口

namespace demo7
{
    public class Student
    {
        public string name;

        //没学属性之前
        //要封装内部细节,变量age保持私有

        //隐藏队内的逻辑
        private int age;

        //对外开放的方法
        public void SetAge(int age)//判断合法
        {
            if (age<=0 || age>150)
            {
                age = 16;
            }
            this.age = age;//this
        }
        public int GetAge()
        {
            return this.age;
        }
        public void StuInfo()
        {
            Console.WriteLine($"学生的姓名为:{name},年龄为:{age}");
        }
    }
}
namespace demo7
{
    class Program
    {
        static void Main(string[] args)
        {
            //C#编译器 语法塘
            Student stu1 = new Student();
            stu1.name = "张三";
            //stu1.SetAge(-1);
            stu1.SetAge(21);
            stu1.StuInfo();
            Console.WriteLine(stu1.GetAge());
            Console.ReadLine();
        }
    }
}

 

2.属性

方式一:

public int Age 
{
    get;//读取权限
    set;//默认权限,如果把set注释掉,意思是只读
}

方式二:

private int age;//字段:内部
public int Age 
{
    get
    {
        return age;
    }//读取权限
    set           //默认属性Age是给value赋值
    {
         if (value <=0 || value>150)
         {
             age = 16;
         }
         else
         {
             this.age = value;
             //在类的内部使用,代表当前的类的对象,this能点出来的都是成员变量(字段、属性和方法)
          }
     }//赋值权限
}

方式三:

 private string name;//字段,首写字母小写

public string Name //Lamda表达式 简化版编译器 匿名方法 =>的优先级跟=一样
//c#编译器语法塘:语法简化,但是编译器还能够识别
{ 
    get => name; //代表了get{return name;}
    set => name = value; //代表set{return name=value;}
}

 

快捷键:

【1】prop+ 2下Tab:生成属性

【2】ctrl + r + e:生成lambda表达式,简化语法

步骤:①首先写一个私有的字段:private string name;

           ②然后把光标置于该句,按下ctrl + r + e,弹出封装窗口,选择即可

private string name;//字段,首写字母小写

public string Name //Lambda表达式 简化版编译器 匿名方法 =>的优先级跟=一样
//c#编译器语法塘:语法简化,但是编译器还能够识别
{ 
    get => name; //代表了get{return name;}
    set => name = value; //代表set{return name=value;}
}

this:

在类的内部使用,代表当前的类的对象,this能点出来的都是成员变量(字段、属性和方法)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值