面向对象三大特征之一封装

封装是对方法、字段、属性等成员的一种保护,是将客观的现实世界抽象为类、对象等,将操作等

集中在一个类中,通过实例化的对象调用属性、方法,而不需要连接类内部的实现,且类内部的改

变不会影响对象对属性、方法的调用

 

C#中常用的修饰符

public 公共的,人和地方都能访问

private 私有的,只能在类内部访问(类中的成员默认是私有的)

protected 受保护的,类内部和子类中能访问

internal 内部的,在程序集(命名空间)中可以访问(类默认是内部的,可以修改为公共的)

 

封装最常见的例子是属性对字段的保护

代码例子

 1 private int _age;
 2 public int Age
 3 {
 4     set
 5        {
 6          if (value<=0 || value>120)
 7             {
 8               _age = 0;
 9              }
10            else
11              {
12              _age = value;
13              }
14      }
15       get
16         {
17            return _age;
18         }
19 }
View Code

代码解析:

private int _age 在堆中定义了一块私有空间

set 方法打开在这块空间写的锁,如无set方法则无法修改字段的值,可以修改属性

Age的值来修改字段_age

get方法打开了这块空间读的锁,如无get方法则无法获取字段的值

 

通过属性的set方法,在设置字段的值的时候,0岁及以下的或120以上,都会设置为

0岁,避免错误的输入导致错误。

 

封装不仅体现在字段属性上,还体现在方法上,而方法则主要表现在继承上。

原文地址:https://www.cnblogs.com/arvinzd/p/14172356.html