学习java和c#过程中出现对访问修饰符混淆的情况,其实这两个语言的差异不是很大,但是细节之处需要留意一下。 JAVA ----------------------------------------------- 访问修饰符 描述 ----------------------------------------------- private 只能在本类内使用(可见) 不写修饰符 表示该成员只能在同一个包内才能互相访问 protected 也是同包内访问,区别上面的地方在于:除了同包,其他包的子类也可以访问 public 表明该成员变量和方法是共有的,能在任何情况下都能被访问 -----------------------------------------------超级分割线----------------------------------------------- C# ----------------------------------------------- 访问修饰符 描述 ----------------------------------------------- private 跟JAVA一样,只能在本类中可以使用 protected 跟JAVA不一样,除了自己只能子类可以访问 internal 只能在当前程序集能访问 protected internal 唯一的一种组合使用的形式,在当前程序集或自己的子类访问,类似于java中的protected public 访问不受限制。 ----------------------------------------------- 特别注意:在C#中如果类内部成员(方法、属性、字段等)不写任何修饰符则默认为private; 如果类(class)的访问修饰符什么也不写默认是internal。 程序集大家可以理解成当前的项目,比如在搭建3层框架时一个解决方案下会有多个项目(表示层、业务逻辑层、数据访问层...),如果想只能在当前项目访问则可以使用internal。 *基类至少与派生类有相同的访问性。 =============================THE END============================= | |