黑马程序员技术交流社区

标题: 在创建一个类的开头加public与不加public是区别? [打印本页]

作者: 苟于伟    时间: 2013-5-19 17:27
标题: 在创建一个类的开头加public与不加public是区别?
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             Person.a = 40;
  6.             Person.Pr();
  7.             person1.Ei();
  8.             Console.ReadKey();

  9.         }
  10.     }
  11.     public class Person  //这里如果不加public与加了public有何区别?
  12.     {
  13.         public static int a;

  14.         public static void Pr()
  15.         {
  16.             Console.WriteLine("静态成员"+a);
  17.         }
  18.     }
  19.     class person1
  20.     {
  21.         public static void Ei()
  22.         {
  23.             Console.WriteLine("我今年{0}岁",Person.a);
  24.         }
  25.     }
  26.    
复制代码
public是允许访问的最高级别,如果在创建一个类的开头加public是表示可以访问本项目之外的项目吗?
作者: 回首、后_街    时间: 2013-5-19 17:48
这就涉及到了权限的问题啊!
不加public就是默认的权限啊!就只能在同一个包中被其它类访问,具有包可见性!
加了public在整个项目中都可以被访问啊!
还要注意的就是如果你使用一些强大的编程工具如:eclipse如果不加public,class后的类名可以不和文件名一样!
如果加了public是一定要和文件名一样的要不会编译报错!
作者: 王朋    时间: 2013-5-19 18:47
对于类来说 public 修饰符在任何地方都可以访问,不加修饰符的话默认是internal表示在当前程序集内都可以被调用到
对于类中的方法字段和属性public也表示任何地方都可以访问,不过不加修饰符的话表示protected,只有在当前类和当前子类中可以访问。
作者: 吃肉的小浣熊    时间: 2013-5-19 21:38
public          全部可见
protected       子类可见
default         包内可见
private         本类可见
不加就是默认的包可见,就是同一包内可以访问,加public就是都可用
作者: 黑马—杨磊    时间: 2013-5-21 10:27
加上public就是完全公开,没有访问的限制;但是不加public的话,就只能在同一命名空间中可以访问




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2