C# 封装

封装 被定义为"把一个或多个我的项目关闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了避免对实现细节的拜访。

形象和封装是面向对象程序设计的相干个性。形象容许相干信息可视化,封装则使开发者实现所需级别的形象。

C# 封装依据具体的须要,设置使用者的拜访权限,并通过 拜访修饰符 来实现。

一个 拜访修饰符 定义了一个类成员的范畴和可见性。C# 反对的拜访修饰符如下所示:

public:所有对象都能够拜访;
private:对象自身在对象外部能够拜访;
protected:只有该类对象及其子类对象能够拜访
internal:同一个程序集的对象能够拜访;
protected internal:拜访限于以后程序集或派生自蕴含类的类型。

Public 拜访修饰符

Public 拜访修饰符容许一个类将其成员变量和成员函数裸露给其余的函数和对象。任何私有成员能够被内部的类拜访。

上面的实例阐明了这点:

实例

using System;

namespace RectangleApplication
{

class Rectangle{    //成员变量    public double length;    public double width;    public double GetArea()    {        return length * width;    }    public void Display()    {        Console.WriteLine("长度: {0}", length);        Console.WriteLine("宽度: {0}", width);        Console.WriteLine("面积: {0}", GetArea());    }}// Rectangle 完结class ExecuteRectangle{    static void Main(string[] args)    {        Rectangle r = new Rectangle();        r.length = 4.5;        r.width = 3.5;        r.Display();        Console.ReadLine();    }}

}
当下面的代码被编译和执行时,它会产生下列后果:

长度: 4.5
宽度: 3.5
面积: 15.75
在下面的实例中,成员变量 length 和 width 被申明为 public,所以它们能够被函数 Main() 应用 Rectangle 类的实例 r 拜访。

成员函数 Display() 和 GetArea() 能够间接拜访这些变量。

成员函数 Display() 也被申明为 public,所以它也能被 Main() 应用 Rectangle 类的实例 r 拜访。

Private 拜访修饰符

Private 拜访修饰符容许一个类将其成员变量和成员函数对其余的函数和对象进行暗藏。只有同一个类中的函数能够拜访它的公有成员。即便是类的实例也不能拜访它的公有成员。

上面的实例阐明了这点:

实例

using System;

namespace RectangleApplication
{

class Rectangle{    //成员变量    private double length;    private double width;    public void Acceptdetails()    {        Console.WriteLine("请输出长度:");        length = Convert.ToDouble(Console.ReadLine());        Console.WriteLine("请输出宽度:");        width = Convert.ToDouble(Console.ReadLine());    }    public double GetArea()    {        return length * width;    }    public void Display()    {        Console.WriteLine("长度: {0}", length);        Console.WriteLine("宽度: {0}", width);        Console.WriteLine("面积: {0}", GetArea());    }}//end class Rectangle    class ExecuteRectangle{    static void Main(string[] args)    {        Rectangle r = new Rectangle();        r.Acceptdetails();        r.Display();        Console.ReadLine();    }}

}
当下面的代码被编译和执行时,它会产生下列后果:

请输出长度:
4.4
请输出宽度:
3.3
长度: 4.4
宽度: 3.3
面积: 14.52