A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾伟 黑马帝   /  2011-12-30 20:06  /  2556 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曾伟 于 2011-12-30 22:42 编辑

在VS2010下新建一个项目以后,系统自添program类。根据类的定义,Main函数为其方法。但是修饰类方法的修饰词为public以及private,而Main函数的修饰为static,是否也是类的访问修饰符。如果是,与public以及private有什么区别。如果不是,为什么Main函数如此特殊?

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

5 个回复

倒序浏览
访问修饰符关键字:
public:公有的访问级别。最大的访问级别,在程序所有的地方都可以访问
private:私有的访问级别。最严格的访问级别,只有在类的内部可以访问。一般类的字段都设置为private
protected:受保护的访问级别,只有类的子类、子类的子类,才可以访问
internal:内部的访问级别,只有本程序集内才可以访问。
访问修饰符关键字有四个,但是访问级别却有五个,除了上面四个以外,还有下面这个:
protected internal:受保护的内部访问级别,对所有继承该类或在该程序集内声明的类,才可以访问

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

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

那么protected访问级别在类的内部可以访问么?
回复 使用道具 举报
曾伟 发表于 2011-12-30 21:57
那么protected访问级别在类的内部可以访问么?

可以的, 不管类或者类中的成员用什么修饰符, 类的内部成员都可以互相访问
回复 使用道具 举报
首先呢,要知道为什么特殊,就要先知道静态方法:一个方法通过在方法声明中使用static修饰符来成为静态方法,这样我们不必为了触发方法而去实例化类的对象,通过类名触发就可以。在C#程序的Main方法必须用static修饰符来声明,这样做使得Main可以被解释器执行而不需要从包含Main的类中实例化一个对象!

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
王兴 黑马帝 2011-12-31 15:19:31
地板
public修饰的方法,可以通过实例本身访问,而private修饰的方法之能在类内部访问。。static修饰的方法可以不实例化一个类,而是通过类名.static方法调用

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马