• 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; 

           }

           }

    }

  • 相关阅读:
    内存分析工具MAT(Memory Analyzer Tool)从安装到使用
    java 技术分享
    FreeMarker三宗罪之优缺点
    100+经典Java面试题及答案解析
    java中使用SimpleDateFormat实现字符串和日期的相互转换
    SQLSERVER还原数据库失败:错误: 3154
    值不能为null.参数名: viewInfo,如何解决
    java中判断Object对象类型
    ajax图片上传(asp.net +jquery+ashx)
    ElasticSearch 入门介绍
  • 原文地址:https://www.cnblogs.com/alexzp/p/2291910.html
Copyright © 2020-2023  润新知