美文网首页
17、5种访问修饰符

17、5种访问修饰符

作者: silence_k | 来源:发表于2016-12-14 22:04 被阅读0次

1. 简述:

所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。 可使用访问修饰符指定声明类型或成员的可访问性。

2. 5种访问修饰符

访问修饰符 说明
public 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。
private 只有同一类或结构中的代码可以访问该类型或成员。
protected 只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员。
internal 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。
protected internal 由其声明的程序集或另一个程序集派生的类中任何代码都可访问的类型或成员。 从另一个程序集进行访问必须在类声明中发生,该类声明派生自其中声明受保护的内部元素的类,并且必须通过派生的类类型的实例发生。

3. 举个栗子

public class Bicycle 
{
      public void Pedal() 
      {
      } 
}

4 . 类和结构的可访问性

直接在命名空间中声明的类和结构(即,没有嵌套在其他类或结构中的类和结构)可以是公共类和结构,也可以是内部类和结构。 如果不指定访问修饰符,则默认为 internal
结构成员,包括嵌套的类和结构,可以声明为公共的、 内部的,或私人的。 类成员(包括嵌套的类和结构)可以为公共的、受保护的内部、受保护的、内部的或私有的。 类成员和结构成员的访问级别,包括嵌套类和结构,默认为私有。 不可以从包含类型之外访问私有嵌套类型。
派生类的可访问性不能高于其基类型。 换句话说,不能有从内部类 A派生的公共类 B。 如果允许这种情况,将会使 A成为公共类,因为 A的所有受保护的成员或内部成员都可以从派生类访问。

5. 类成员和结构成员的可访问性

可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构)。 结构成员无法声明为受保护成员,因为结构不支持继承。
通常,成员的可访问性低于包含成员的类型的可访问性。 如果由成员实现接口方法或重写已在公共基类中定义的虚拟方法时,内部类的公共成员可以从外部程序集访问。
任何成员的字段、 属性或事件的类型必须至少与该成员本身一样具备可访问性。 同样,作为方法、索引器或代表的任一成员的返回类型和参数类型必须至少有与该成员本身一样的可访问性。 例如,如果 C不是公共类,则不能返回类 C的公共方法 M。 同样,如果 A声明为私有,则类型 A不能有受保护的属性。
析构函数不能具有可访问性修饰符。
要设置类成员或结构成员的访问级别,请向该成员声明添加适当的关键字,如下面的示例所示。

        public class Tricycle
        {
            // protected method:
            protected void Pedal() { }

            // private field:
            private int wheels = 3;

            // protected internal property:
            protected internal int Wheels
            {
                get { return wheels; }
            }
        }

6. 其他类型

  1. 接口成员始终是公共成员,因为接口的用途是让其他类型能够访问某个类或结构。 访问修饰符不能应用于接口成员。
  2. 枚举成员始终是公共的,不能应用任何访问修饰符。
  3. 委托行为类似于类和结构。 默认情况下,它们在命名空间中直接声明时具有内部访问权,在嵌套时具有私有访问权。

相关文章

  • Java知识之修饰符

    Java中的修饰符 Java中的修饰符主要分为两类: 访问控制修饰符 非访问控制修饰符 访问控制修饰符分: pub...

  • C#图解教程笔记20170718

    访问修饰符 字段访问修饰符 类型 标识符; 方法访问修饰符 返回类型 方法名(){、、、} 五种成员...

  • java(3-Java 修饰符)

    Java 修饰符主要两类:访问修饰符非访问修饰符 访问控制修饰符 default (即默认,什么也不写): 在同一...

  • Java 修饰符

    修饰符 访问修饰符 非访问修饰符 1.访问修饰符用来定义类、方法或者变量,通常放在语句的最前面。- private...

  • java修饰符

    分类 访问修饰符 非访问修饰符 访问修饰符 默认的 default 在同一个包中可见 不使用任何修饰符 私有的 ...

  • JAVA基础——修饰符

    修饰符的分类 1、访问修饰符 2、非访问修饰符 一、访问修饰符 1、默认的,也称为 default,在同一包内可见...

  • Java修饰符总结

    分类 Java语言提供了很多修饰符,大概分为两类: 1.访问权限修饰符 2.非访问权限修饰符 访问权限修饰符 1....

  • Java 修饰符

    Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方...

  • Java中各种修饰符的说明

    类 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 访问修饰符与修...

  • 日常记忆Java修饰符

    Java修饰符 Java语言提供的很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符修饰符用来定义类、方法或...

网友评论

      本文标题:17、5种访问修饰符

      本文链接:https://www.haomeiwen.com/subject/uelwmttx.html