zoukankan      html  css  js  c++  java
  • Class的访问权限(public ,private,protected,internal)

    概念:

    1.值类型:数据存储在内存的堆栈中,从堆栈中可以快速地访问这些数据,因此,值类型表示实际的数据。

    2.引用类型:表示指向存储在内存堆中的数据的指针或引用(包括类、接口、数组和字符串)。

     

    new运算符:

            (1)用于创建对象和调用构造函数。 例如:                 

               Class1 obj  = new Class1();
         (2)还可用于创建匿名类型的实例: 
            var query = from cust in customers
                        select new {Name = cust.Name, Address = cust.PrimaryAddress};
         (3)new 运算符还用于调用值类型的默认构造函数。 例如:
                     int i = new int();
              在上一个语句中,i 初始化为 0,它是 int 类型的默认值。 该语句的效果等同于:
              int i = 0;
    
    
    
    
    
    

    Class的访问权限:

                            Internal      Protected  Internal       Protected       Private         Public 

    属性或方法

    同一个类中:         Y                      Y                            Y                     Y                Y 

    子类:                 Y                      Y                            Y                     N               Y 

    引用   :             N                      -无                          --无                 --无                Y 

    同一命名空间        Y                      Y                            N                    N                Y 

    子类不能比父类的存取范围低:如 

    internal   class Class1      {}

    public class Test : Class1   {}

    这样会报错:錯誤   1     不一致的存取範圍: 基底類別 'InterNalClass.Class1' 比類別 'InterNalClass.Test' 存取範圍低    

    顶级类中只能是Public或者是Internal 修饰,如:

     Namespace  test

    {

           Public class ll  {}                //顶级类

    }

    同一个类中,Function调用嵌套类的:   Class  ll =new Class();,

    Namespace  test

    {

           Public class ll                  //顶级类

          {

             public class C_Public

            {

                public static int publicInt=0;

                internal static int internalInt=0;

                private static int privateInt = 0;

                protected internal int protectedInternal = 0;

            }

           Public  void function()

          {

                C_Public ll = new C_Public();          //new  与直接调用有什么区别啊???

                ll.protectedInternal = 1;                //只有一个

     

                C_Public.publicInt = 2;                   //有两个属性 

                C_Public.internalInt = 3; 

           }

           }

    }

  • 相关阅读:
    Spring Boot与Redis的集成
    Spring Boot 使用YAML配置
    Spring Boot与MyBatis的集成
    springboot 初识
    微服务架构
    Spring MVC 国际化
    Spring MVC 为控制器添加通知与处理异常
    Spring MVC 数据转换和格式化
    Spring MVC 上传文件
    Spring MVC 实例:Excel视图的使用
  • 原文地址:https://www.cnblogs.com/alexzp/p/2291910.html
Copyright © 2011-2022 走看看