在学习结构体和方法的时候,都有提到访问修饰符的内容。那么访问修饰符是用来干什么的?访问修饰符又和面向对象三大特性之一的封装有什么关系?
一、访问修饰符
1、定义
首先来看一下官方上对于访问修饰符的定义:
所有类型和类型成员都具有可访问型级别。该级别可以控制是否可以从你的程序集或其他程序集中的其他代码中使用它们。
说白了,访问修饰符相当于是权限。
例如在公司里,你能做的,上级都能做;上级能做的,你不一定可以做。你可以摸鱼,上级也可以摸鱼;上级可以发工资,你却只能领工资。
放在编程里也是一样的,访问修饰符决定哪些代码你可以随意使用,而哪些是不允许你使用的。
2、权限
C# 中的访问修饰符一共有五个,分别是 public
、private
、protected
、internal
、private protect
以及 protected internal
。
它们各自的权限如下表:
由上可见,public
相当于就是公共权限,在哪里都可以使用;private
相当于是私人权限,有些秘密还是自己知道就好...
二、封装
众所周知,面向对象编程语言有三大特性,分别是封装、继承和多态。
(1)定义
把一个或多个项目封闭在一个屋里或者逻辑的包中。
在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。
封装也就是我们将写好的、相关联的程序代码装到一个类中,隐藏了对象中的属性和实现细节。当要使用其中的某个功能,只需要调用该类即可以。
(2)封装和访问修饰符
那么封装和访问修饰符之间又有什么关联呢?
上面说到封装就是把相关完整的代码放在一块,只要关联类的调用,就离不开要讨论访问修饰符。
例如,我们封装好了一个类,类中有些变量或者方法允许所有人都可以使用,就可以使用 public
来修饰变量和方法;但是有些内容,我希望是在这个类中才能使用,其他人无权使用,那么就可以使用 private
来修饰变量和方法。
因此,需要根据所要使用对象来指定访问修饰符,这也是封装中很重要的一点。
(3)优点
- 提高数据的安全性 - 调用者不能修改某个私有的成员属性,确保了私有属性的数据安全。
- 提高代码可重用性 - 将一系列相关代码封装起来,调用者想要实现其中功能,只要知道调用方法来使用即可。便于可重复使用,减少了大量代码的产生。
- 隐藏具体实现 - 调用者只需要知道调用方法,而不需要直到具体的实现过程。
三、总结
本篇文章简单地记录了关于访问修饰符以及面向对象封装的一些基本概念。
接下来将学习关于面向对象的继承和多态的内容。