C#和Java访问修饰符的比较
访问修饰符
对于C#:
类 的默认修饰符是 internal(外部类只能被public / internal 修饰)
枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符
接口 的默认修饰符是 internal 且此类型不允许其它访问修饰符,接口成员只能是public
委托 的默认修饰符是 internal
类中的成员可使用全部访问修饰符
protected internal :在程序集内部总是可访问,在程序集外部只能是子类中可访问
对于Java:
C#中的internal其实就对应于Java中的default,java中的protected就对应于C#中的protected internal
所有的地方,默认修饰符是 default(什么都不写),表示同一个包中可见(外部类只能用public修饰,或者不写(即default))
- public 一个类中,同一包中,子类中,不同包中
- protected 一个类中,同一包中,子类中
- default 一个类中,同一包中
- private 一个类中
一.(修饰类成员)类成员
- 成员使用private修饰只在本类中使用。
- 如果一个成员没有使用任何修饰符,就是default,该成员可以被包中的其
- 他类访问。
- protected成员被protected修饰可以被包中其他类访问,并且位于不同
- 包中的子类也可以访问。
- public修饰的成员可以被所有类访问。
二. (修饰类)类
- 类只有两种public和默认(成员内部类可以使用private))
- 父类不可以是private和protected,否则子类无法继承
- public类可以被所有类访问
- 默认类只能被同一个包中的类访问
更详细的资料可以参考:
http://www.cnblogs.com/snowdrop/articles/2143194.html