C#封装知识

本文介绍了面向对象编程中的封装概念,包括为何封装(防止数据被恶意修改)、如何封装(使用public和private访问修饰符)以及get和set访问器的作用。通过示例展示了如何在C#中实现封装,如限制属性的赋值条件,以及在实际应用中的类如账户类(Account)中如何使用封装确保数据安全。同时,文章提到了封装的好处,如隐藏实现细节、增加控制语句等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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("不在范围内");
           }
        }
   }
 }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值