C#封装知识

1、定义:
Why:防止类中数据被恶意修改
What:将类的某些信息隐藏在类内部(private),不允许外部程序直接访问,而且通过该类提供的公共属性(public)来实现隐藏信息的操作和访问。
How:(快捷键)
1)prop+Tab(开发封装)
public int Id { get; set; } //属性
2)propfull+Tab(限制封装)
private int age;//字段
public int Age //属性
{
get { return age; } //属性的读取
set { age = value; } //属性赋值
}
第二种方法的好处可以给属性加条件
例如:

private int age;//private:私有  成员变量
public int Age  //public:公共  属性
 {
    
    
   get {
    
     return age; }
   set {
    
    
        if (value> 0)
         {
    
    
          age = value;
         }
        else
         {
    
    
          Console.WriteLine("年龄必须大于等于0");
         }
        }
  }

2、封装的好处
1)隐藏类的实现细节
2)只能通过规定属性访问数据
3)方便加入控制语句
4)方便修改实现

3、get 和 set 访问器
1)get 访问器,用于获取属性的值,需要在 get 语句最后使用 return 关键字返回一个与属性数据类型相兼容的值。
若在属性定义中省略了该访问器,则不能在其他类中获取私有类型的字段值,因此也称为只写属性
2)set 访问器用于设置字段的值,这里需要使用一个特殊的值 value,它就是给字段赋的值。在 set 访问器省略后无法在其他类中给字段赋值,因此也称为只读属性

4、习题
在这里插入图片描述

class account
 {
    
    
   public long Id {
    
     get; set; }
   public double Banlance {
    
     get; set; }
   private string password;
   public string  Password
    {
    
    
     get{
    
     return null; }
     set
        {
    
    
         if (value.Length == 6)
          {
    
    
            password = value;
          }
         else
          {
    
    
           Console.WriteLine("密码长度必须是6位");
          }            
        }
    }
 static void Main(string[] args)
  {
    
    
  account aa = new account();
  aa.Password = "123";//密码要六位
  Console.WriteLine(aa.Password);
  SavingAccount save = new SavingAccount();
  save.InterestRate = 0.2;//利率在0到0.1之内
  CrieditAccount cried = new CrieditAccount();
  cried.Creditline = -8;//信用度大于0
  }
}
class SavingAccount
 {
    
    
  private double interestRate;
  public double InterestRate
  {
    
    
   get {
    
     return interestRate; }
   set
       {
    
     
         if(value>0 && value < 0.1)
           {
    
    
            interestRate = value;
           }
          else
           {
    
    
            Console.WriteLine("不在范围内");
           }
        }
   }
 }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44706943/article/details/125956284