Java和C#的访问修饰符

来源:互联网 发布:拍淘宝衣服用什么镜头 编辑:程序博客网 时间:2024/04/30 00:01

JavaC#的访问修饰符

C#的访问修饰符:

     Public:可被所属类和成员以及不属于类的成员访问.

所修饰类的成员

可在任何情况下通过类的对象和类成员被使用.

所修饰的类类型

       可在任何情况下被类的访问级别的类继承.

       Internal:可被当前程序集访问           

所修饰类的成员

在统一解决方案里的使用与Public相同(与命名空间无关).出了解决方案则不可被使用.

              所修饰的类类型(其为类的默认修饰符)

在统一解决方案,可被相同级别的类继承(也就是说被Internal修饰的类),不可被访问就别比自己高的类继承(Public修饰的类).

同时,在不同解决方案,类类型不可被使用.

       Protected:可被所属类或派生自所属类的类型访问.

              所修饰类的成员

1.      可被类的内部对象(隐指针this) 和类成员使用,以及在类的内部所声明的类的对象使用.

2.      在其他类中声明的自身类的对象却不可访问自身的protected成员.

3.      在同一命名空间或不同命名空间,派生自所属类的类就继承了父类的protected以及访问级别以上的类成员,所以他的使用与自身声明的成员无异,其规则参照上两条.

所修饰的类类型

       其修饰符不能修饰类.

       Private:仅所属类的成员才可以访问

              所修饰类的成员(其为类成员的默认修饰符)

1.      可被类的内部对象和类成员使用,以及在类的内部所声明的类的对象使用.

2.      在其他类中声明的自身类的对象也不可访问自身的private成员.

3.      任何情况下,private成员不可被派生类继承.

所修饰的类类型

       其修饰符不能修饰类.

 

Java的访问修饰符:

Public:

所修饰类的成员

可在任何情况下通过类的对象和类成员被使用.

所修饰的类类型

       可在任何情况下被其他访问级别的类继承.

Protected:

              所修饰类的成员

1可被类的内部对象(隐指针this) 和类成员使用,以及在类的内部所声明的类的对象使用.

2在同,在其他类中声明的自身类的对象可访问自身的protected成员.

3 在不同, 在其他类中声明的自身类的对象却不可访问自身的protected成员.

4在同一或不同,派生自所属类的类就继承了父类的protected以及访问级别以上的类成员,但是在同,在其他类中声明的自身类的对象可访问自身和父类继承下的protected成员,在不同,在其他类中声明的自身类的对象只可访问父类继承下的protected成员,而自身的protected成员不可访问.

所修饰的类类型

       其修饰符不能修饰类.

       默认的:

              所修饰类的成员

1可被类的内部对象(隐指针this) 和类成员使用,以及在类的内部所声明的类的对象使用.

2在同,在其他类中声明的自身类的对象可访问自身的默认级别的成员.

3 在不同, 在其他类中声明的自身类的对象却不可访问自身的默认级别的成员.

4. 任何情况下,默认级别的成员不可被派生类继承.

所修饰的类类型

       1. 在同,可被其他访问级别的类继承.

                     2. 默认级别的类,不能在外被声明和实例化,也不能被继承,即使引入了包(import).也就是说,它在包外不可见.

Private:

              所修饰类的成员(其为类成员的默认修饰符)

1可被类的内部对象和类成员使用,以及在类的内部所声明的类的对象使用.

2任何情况下,在其他类中声明的自身类的对象也不可访问自身的private成员.

3任何情况下,private成员不可被派生类继承.

所修饰的类类型

       其修饰符不能修饰类.