就能够想到访问等第

学到封装就能够想到访谈修饰符,提起拜谒修饰符,就能够想到访谈等第,可能说是访谈本事的高低。当然也少不了暗中认可的访谈类型。

  1. C# 方法私下认可采访品级 : private
    (私有的) 
  2. C# 类暗中同意访谈等级 : internal   
    (内部的) 

封装 被定义为”把三个或多少个连串密封在四个物理的依旧逻辑的包中”。在面向对象程序设计方法论中,封装是为着卫戍对贯彻细节的访谈。

空洞和包裹是面向对象程序设计的连锁天性。抽象允许相关信息可视化,封装则使开辟者落实所需等第的空洞

C#
封装依据现实的急需,设置使用者的拜候权限,并透过 拜会修饰符 来实现。

一个 访谈修饰符 定义了二个类成员的限定和可以见到性。C#
援助的访谈修饰符如下所示:

  • public:全部指标都足以访谈;(公共的)
  • private:对象自己在目标内部可以访谈;(私有的)
  • protected:独有该类对象及其子类对象足以访谈;(受保障的)
  • internal:同一个程序集的对象能够访问;(内部的)
  • protected
    internal:访谈限于当前前后相继集或派生自富含类的项目。(内部受有限扶植的)

对于访谈修饰符中 涉及的程序集和命名空间 :   

程式集:IL+元数据

假如说命名空间是类库的逻辑协会格局,那么程序集正是类库的情理组织方式。唯有相同的时候钦赐项目所在的命名空间及贯彻该品种的程序集,能力一心限定该类型。(摘抄自《理解.NET焦点手艺–原本与架构》 电子工业出版社)

举个例子说我们要用A类,则须要把带有A类的程序集(即*.DLL)援用到该工程中(物理);而在程序中要注解A类的命名空间(逻辑)。

 

Public(公共的) 访问修饰符

Public
访问修饰符允许贰个类将其成员变量和分子函数揭示给别的的函数和对象。任何国有成员能够被外表的类访谈

上边是个小例子

using System;

namespace ConsoleApp1
{
    class Rectangle
    {
        public double length { get; set; }
        public double width { get; set; }

        public double Getarea()
        {
            return length * width;
        }

        public void Display()
        {
            Console.WriteLine($"长度:{length}");
            Console.WriteLine($"宽度:{width}");
            Console.WriteLine($"面积:{Getarea()}");
        }
    }




    class Program
    {
        static void Main(string[] args)
        {
            Rectangle rectangle = new Rectangle();
            rectangle.width = 55.5;
            rectangle.length = 12.32;
            rectangle.Getarea();
            rectangle.Display();
            Console.ReadKey(true);
        }
    }
}

 

当上边的代码被编写翻译和实践时,它会发生下列结果:

长度:12.32
宽度: 55.5 
面积: 683.76

在上头的实例中,成员变量 length 和 width
被声称为 public,所以它们能够被函数 Main() 使用 Rectangle
类的实例  rectangle 访问。

成员函数 Display() 和 GetArea() 能够直接访谈这一个变量。

成员函数 Display() 也被声称为 public,所以它也能被 Main() 使用
Rectangle 类的实例 rectangle 访问。

Private(私有的) 访谈修饰符

Private
访问修饰符允许二个类将其成员变量和分子函数对别的的函数和对象举办隐瞒。唯有同叁个类中的函数能够访问它的私家成员。纵然是类的实例也不能够访谈它的私人住房成员。

using System;

namespace ConsoleApp1
{
    class Rectangle
    {
        private double length { get; set; }
        private double width { get; set; }

        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($"长度:{length}");
            Console.WriteLine($"宽度:{width}");
            Console.WriteLine($"面积:{Getarea()}");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Rectangle rectangle = new Rectangle();
            rectangle.Getarea();
            rectangle.Display();
            Console.ReadKey(true);
        }
    }
}

在上头的实例中,成员变量 length 和 width
被声称为 private,所以它们不可能被函数 Main() 访问。

成员函数 AcceptDetails() 和 Display() 能够访问这几个变量。

出于成员函数 AcceptDetails() 和 Display() 被声称为 public,所以它们能够被 Main() 使用
Rectangle 类的实例 rectangle 访问。

那风华正茂段讲的是private 实际不是public
所以请认真看那八个访问修饰符,笔者第二遍看的时候也看错了。所以请认真对照!

Protected 访谈修饰符

Protected
访谈修饰符允许子类访谈它的基类的积极分子变量和成员函数。那样有扶助完成持续。
放到接二连三的章节详细座谈这些。 

Internal 访谈修饰符

Internal
访谈表明符允许叁个类将其成员变量和成员函数揭露给当下前后相继中的别的函数和指标。

换句话说,带有 internal
访谈修饰符的 另外成员 能够被定义在该成员所定义的应用程序内的别的类或艺术访问。 

using System;

namespace RectangleDemo 
{
    class Rectangle
    {
        //成员变量
        internal double length;
        internal double width;

        double GetArea()
        {
            return length * width;
        }
       public void Display()
        {
            Console.WriteLine("长度: {0}", length);
            Console.WriteLine("宽度: {0}", width);
            Console.WriteLine("面积: {0}", GetArea());
        }
    }   
    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

在地点的实例中,请留意成员函数 GetArea() 表明的时候不包括别的访谈修饰符。若无一点点名访谈修饰符,则动用类成员的暗许访问修饰符,即为 private

Protected Internal 访谈修饰符

Protected Internal
访问修饰符允许在本类,派生类只怕隐含该类的程序聚焦拜谒。那也被用来落到实处持续。 
 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website