• 修饰符


    C#

             类修饰符publicinternal partialabstractsealedstatic

    成员修饰符publicprotectedprivateinternalsealedabstractvirtualoverridereadonlyconst

     

             Public:最开放,所有的本程序集以及其他的程序集里面的对象都能够访问

     

             Protected:比较开放,自身成员以及子类成员可访问

     

             Private:只有自身成员才能够访问

     

             Internal:本程序集内的成员可以访问

     

             Partial:部分类,可以将一个类分成几部分写在不同文件中,最终编译时将合并成一个文件,且各个部分不能分散在不同程序集中

     

             Abstract:修饰类的时候表示该类为抽象类,不能够创建该类的实例。修饰方法的时候表示该方法需要由子类来实现,如果子类没有实现该方法那么子类同样是抽象类;且含有抽象方法的类一定是抽象类

     

             Sealed:修饰类时表示该类不能够被继承,修饰方法时表示该方法不能被覆写。

     

             Static:修饰类时表示该类时静态类,不能够实例化该类的对象,既然不能实例化该类,那么这个类也就不能够含有对象成员,即该类所有成员为静态;修饰类成员时,该成员为类成员,只能通过【类.成员名】的方式访问

             static修饰构造函数时,构造函数不能含有任何参数,不能含有修饰符,构造函数不能对对象成员进行初始化操作。但是能够对静态成员进行初始化或者调用。不能保证他在什么时候执行,却能保证在第一次使用类型前执行。在静态构造函数中初始化的静态成员为最终初始化结果。例如:

                          public static int test = 0;

                        static Person()

                       {

                           test = 3;

               }

     

            static void Main(string[] args)

            {

                Console.WriteLine(Person.test);//运行结果为3

    }

    也就是说相当于:

    public static int test;

    static Person()

    {

          test=3;

    }

             Virtual:修饰方法成员,表示虚方法。父类可以含有该类的实现,子类可以覆写该函数。

     

             Override:表示该方法为覆写了父类的方法。

     

             Readonly:修饰字段,表示该字段为只读字段。

     

    注意:readonly修饰引用类型时由于操作不当可能修改该只读对象状态。例如:

    Readonly List<Person> persons=….;

    我们可能在某些地方对persons 进行了修改:persons.add(new Person());

     

             Const:修饰字段,表示该字段为只读字段。并且在编译时必须能够明确知道该字段的值,其值是硬编码到程序中去的,修改了该类型成员后需要重新编译才能使修改生效。

             readonly是运行时只读,内容在运行时确定,所以修改了readonly类型成员后无需重新编译即可生效。

             Readonly不能修饰局部变量,const可以。

    注意:当一个类或方法没有被任何修饰符修饰时,默认为internal

     

    Java

             类修饰符public[default]sbstractfinal

             成员修饰符publicprotectedprivate[default]abstractfinalstatic

             PublicprotectedprivateabstractC#含义相同,没有partial修饰符

     

             [Defaul]t:没有给成员添加修饰符时默认包内可见

     

             Final:修饰类和方法时等同于c#sealed,修饰字段时等同于c#const

     

             Static:基本等同于C#

    区别在于:

    1.       修饰方法时,可以通过对象实例来调用。例如:

    Class Person{

           Public static void show(){}

    }

    Person.show();

    New Person().show();

    2.       没有静态构造函数,不过有静态语句块,等同于静态构造函数。例如:

    Public static int A=0;

    Static{

           A=3;

    }

    结果与C#

    C++

             类修饰符:所有的类默认为public,不添加任何修饰符

             成员修饰符publicprotectedprivatevolatileconstmutableinlinevirtual,static

     

             PublicprotectedprivateC#java基本相同,区别在于:

             1.C++中这三个操作符可用于控制继承,public继承与C#java同;protected继承则父类的所有publicprotected成员访问级别为privateprivate成员为private

    Private继承则父类中所有成员访问级别为private

     

             Valotile:修饰方法,表示该方法调用后,对象内部的某些属性或对象状态会发生改变;实现以及定义时都需要指定volatile关键字

     

             Const:修饰方法,表示该方法不会改变对象内部状态,定义以及实现中都需要添加const关键字;修饰字段表示为只读常量字段,修饰方法参数表示该方法内不能修改该参数的值

     

             Mutable:修饰字段,被表示为mutable的字段其值可以在标示了const的方法内发生改变

     

             Inline:修饰方法,表示该方法在编译时内联。注意:在头文件中实现的方法默认为内联方法,如果头文件中没有实现,在实现文件中实现时可以加inline关键字指定内联。定义时可以指定inline关键字;最后是否内联取决于编译器

     

             Virtual:虚方法,子类可以覆写,关键字可带可不带

     

             Static:修饰字段表示为静态字段,且定义在.h文件中;初始化在.cxx文件中;

    修饰方法为静态方法,类域以及该类的实例对象都可以访问

     

    c++关键字的内容差不多如此,但是使用起来比较麻烦,后面会针对使用做补充,希望大家有什么意见和修正也提出来,在此表示感谢!)

     

    原创文章,转载请注明出处!
    All CopyRight Reserved !

     

    主页:http://jingtao.cnblogs.com

    QQ:307073463
    Email:jingtaodeemail@qq.com
    MSN:sunjingtao@live.com

  • 相关阅读:
    opensuse的一些软件使用
    love2d新闻
    好用的在线工具收集
    POJ2531 Network Saboteur 枚举||随机化
    Acdream Path 动态规划
    Acdream Xor 简单数学
    POJ2676 Sudoku 搜索
    Acdream 1015 Double Kings 搜索
    Acdream Multiplication 基础题
    Acdream Cut 贪心
  • 原文地址:https://www.cnblogs.com/jingtao/p/1421802.html
Copyright © 2020-2023  润新知