elvis0123

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

     public意思是指变量可以被继承的类和new的实例条用.作用于全域.

     private 只能在基类中使用. 继承的,实例后的都不可以.

 

 1class Vehicle
 2{
 3 public int wheel; //公有变量wheel,
 4 private float weight; //私有变量weight
 5 public void F()
 6 {
 7    wheel=4;   //合法调用
 8    weight=2.2;  //合法调用. 
 9 }

10}

11
12class Train
13{
14 public int num;   //公有变量 num
15 private int passenger; //私有变量passenger
16 public void F()
17 {
18    num=4//合法
19    passenger=100//合法
20    Vehicle v= new Vehicle();
21    v.wheel=4;  //合法, 调用到Vehicle的类中变量.
22    v.weight=2.2;  //不合法. 因为vehicle中的weight是私有的.
23 }
 
24}

25
26class Car:Vehicle  //car的类继承自vehicle类.
27{
28 int passenger;  
29 public void K()
30 {   
31   wheel=6;  //合法.
32   weight = 4.2;  //不合法. //因为vehicle里面的是私有.
33 }

34}

 

------------------------------------

  • Public,选择它的方法是在成员声明中包括 public 修饰符。public 的直观含义是“访问不受限制”。
  • Protected,选择它的方法是在成员声明中包括 protected 修饰符。protected 的直观含义是“访问范围限定于它所属的类或从该类派生的类型”。
  • Internal,选择它的方法是在成员声明中包括 internal 修饰符。internal 的直观含义是“访问范围限定于此程序”。
  • Protected internal(意为受保护或内部的),选择它的方法是在成员声明中包括 protectedinternal 修饰符。protected internal 的直观含义是“访问范围限定于此程序或那些由它所属的类派生的类型”。
  • Private,选择它的方法是在成员声明中包括 private 修饰符。private 的直观含义是“访问范围限定于它所属的类型”。

声明一个成员时所能选择的已声明可访问性的类型,依赖于该成员声明出现处的上下文。此外,当成员声明不包含任何访问修饰符时,声明发生处的上下文会为该成员选择一个默认的已声明可访问性。

  • 命名空间隐式地具有 public 已声明可访问性。在命名空间声明中不允许使用访问修饰符。
  • 编译单元或命名空间中声明的类型可以具有 publicinternal 已声明可访问性,默认的已声明可访问性为 internal
  • 类成员可具有五种已声明可访问性中的任何一种,默认为 private 已声明可访问性。(请注意,声明为类成员的类型可具有五种已声明可访问性中的任何一种,而声明为命名空间成员的类型只能具有 publicinternal 已声明可访问性。)
  • 结构成员可以具有 publicinternalprivate 已声明可访问性并默认为 private 已声明可访问性,这是因为结构是隐式地密封的。结构的成员若是在此结构中声明的(也就是说,不是由该结构从它的基类中继承的)不能具有 protectedprotected internal 已声明可访问性。(请注意,声明为结构成员的类型可具有 publicinternalprivate 已声明可访问性,而声明为命名空间成员的类型只能具有 publicinternal 已声明可访问性。)
  • 接口成员隐式地具有 public 已声明可访问性。在接口成员声明中不允许使用访问修饰符。
  • 枚举成员隐式地具有 public 已声明可访问性。在枚举成员声明中不允许使用访问修饰符。

public, internal, protected internal, private表明类实例方法的可访问性.

public, protected, protected internal, private表明继承时父类方法的可访问性.

 

-------------------------

 

msdn的解释如下:internal指的是同一个程序集,内部成员和类型才是可以访问的.内部访问通常用于基于组件的开发,因为它使一组组件能够以私有方式进行合作,而不必向应用程序代码的其余部分公开

一个成员或类型只能有一个访问修饰符,使用 protectedinternal 组合时除外。

命名空间上不允许使用访问修饰符。命名空间没有访问限制。

根据发生成员声明的上下文,只允许某些声明的可访问性。如果在成员声明中未指定访问修饰符,则使用默认的可访问性。

不嵌套在其他类型中的顶级类型的可访问性只能是 internal 或 public。这些类型的默认可访问性是 internal。

嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

 

 

属于 默认的成员可访问性 该成员允许的声明的可访问性

enum

public

class

private

public

protected

internal

private

protected internal

interface

public

struct

private

public

internal

private


 

 

posted on 2009-01-07 14:22  elvis  阅读(396)  评论(0编辑  收藏  举报