【C#学习日记】封装
![颈椎疼难受](https://i-blog.csdnimg.cn/blog_migrate/94faa6bd0465db1a5a3c98a5506410dc.jpeg#pic_center)
1. 综述
在面向对象程序设计方法论中,封装是为防止对实现细节的访问。抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。
2. 访问修饰符
public: 允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何共有成员可以被外部的类访问(范围最大)。
private: 允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏。只有同一个类中的函数可以访问它的私有成员。即使是类的实例也不能访问它的私有成员。
protected: 只有该类对象即其子对象可以在自身类内访问,有助于继承。
internal: 同一个程序集的对象可以访问(同一个工程,比public范围小)。
protected internal: 允许在派生类或者该类的程序集中访问。
C#默认的修饰符为private
3. lazy实现的单例模式(附加)
public class CommonDeviceHelper
{
private static readonly Lazy<CommonDeviceHelper> lazy
= new Lazy<CommonDeviceHelper>(() => new CommonDeviceHelper());
public static CommonDeviceHelper Instance
{
get { return lazy.Value; }
}
private CommonDeviceHelper()//私有的构造函数,组织在类外实例化
{ }
}