黑马程序员技术交流社区

标题: 访问修饰符问题 [打印本页]

作者: 曾伟    时间: 2011-12-30 20:06
标题: 访问修饰符问题
本帖最后由 曾伟 于 2011-12-30 22:42 编辑

在VS2010下新建一个项目以后,系统自添program类。根据类的定义,Main函数为其方法。但是修饰类方法的修饰词为public以及private,而Main函数的修饰为static,是否也是类的访问修饰符。如果是,与public以及private有什么区别。如果不是,为什么Main函数如此特殊?
作者: 李荣壮    时间: 2011-12-30 21:54
访问修饰符关键字:
public:公有的访问级别。最大的访问级别,在程序所有的地方都可以访问
private:私有的访问级别。最严格的访问级别,只有在类的内部可以访问。一般类的字段都设置为private
protected:受保护的访问级别,只有类的子类、子类的子类,才可以访问
internal:内部的访问级别,只有本程序集内才可以访问。
访问修饰符关键字有四个,但是访问级别却有五个,除了上面四个以外,还有下面这个:
protected internal:受保护的内部访问级别,对所有继承该类或在该程序集内声明的类,才可以访问

static:使用static之后 ,Main方法就变成了静态方法,静态方法可以使方法不用实例化就可以使用。
通常我们使用一个方法的时候,必须先使用New关键字实例化,声明该方法的类,然后才能够在类的外部访问它,
使用该方法时,只要通过类名加“."就可以直接使用了.

Main方法的特殊是因为它是所有程序的入口, 根本没有哪个地方可以实例化它,所以才必须用到static.
静态方法在程序运行时就已经生成了,而普通方法 只有通过实例化之后 才可以访问.
作者: 曾伟    时间: 2011-12-30 21:57
李荣壮 发表于 2011-12-30 21:54
访问修饰符关键字:
public:公有的访问级别。最大的访问级别,在程序所有的地方都可以访问
private:私有 ...

那么protected访问级别在类的内部可以访问么?
作者: 李荣壮    时间: 2011-12-30 22:04
曾伟 发表于 2011-12-30 21:57
那么protected访问级别在类的内部可以访问么?

可以的, 不管类或者类中的成员用什么修饰符, 类的内部成员都可以互相访问
作者: 傅涌钦    时间: 2011-12-30 23:11
首先呢,要知道为什么特殊,就要先知道静态方法:一个方法通过在方法声明中使用static修饰符来成为静态方法,这样我们不必为了触发方法而去实例化类的对象,通过类名触发就可以。在C#程序的Main方法必须用static修饰符来声明,这样做使得Main可以被解释器执行而不需要从包含Main的类中实例化一个对象!
作者: 王兴    时间: 2011-12-31 15:19
public修饰的方法,可以通过实例本身访问,而private修饰的方法之能在类内部访问。。static修饰的方法可以不实例化一个类,而是通过类名.static方法调用




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