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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵建飞 初级黑马   /  2012-7-30 16:18  /  1672 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵建飞 于 2012-7-31 10:18 编辑

那么,main()函数也是一只活生生的静态方法呀,为什么可以胡作非为呢?我知道此刻我短路了,发热中。

5 个回复

倒序浏览
本帖最后由 尤洋 于 2012-7-30 17:09 编辑

要明白其中缘由的话  首先必须明白为什么说静态方法只能处理静态成员不能处理非静态成员:
原因在于前者是关联到类而后者是关联到对象实例。

因此 main函数可不是胡作非为,依然要遵循规律
main函数当要直接调用本类成员时必须得在成员前加static
想要不加static的话就必须创建本类对象以达到关联对象实例
然后再调用本类对象的成员
回复 使用道具 举报
不知道胡作非为具体指什么?
mian方法只是一个入口,其中main不是关键字,但是一个特殊的单词,可以被jvm识别。
(String[]args)函数的参数,参数类型是一个数组,该数组中元素是字符串。
主函数是固定格式的,jvm需要识别,所以不能没有。
如果指的mian方法中自己定义的局部变量,所有的static都可以定义和处理的。
至于访问其他类的变量,方法,处理这些方法,自然是通过new出对象,或者是访问static的方法或变量。

点评

多谢,已明白啦。  发表于 2012-7-31 10:23
回复 使用道具 举报
main方法要是调用本类的成员和方法时,要有本类对象或者该成员或者方法是静态的才行啊,所以不要乱啦

点评

已经清晰了,呵呵。  发表于 2012-7-31 10:22
回复 使用道具 举报
陈红建 来自手机 中级黑马 2012-7-30 17:43:17
报纸
我对main是这么理解的
每个程序运行的时候都有他的一个入口地址
可以把class文件抽象成一个exe文件啊。管他是静态还是非静态,总之程序需要一个入口。 哎。。要仔细深究一会脑袋就大了

点评

就如楼上所说,其实main方法也只能条用静态成员,或者通过对象调用非静态成员,没有其他的了。  发表于 2012-7-31 10:21
回复 使用道具 举报
尤洋 发表于 2012-7-30 17:07
要明白其中缘由的话  首先必须明白为什么说静态方法只能处理静态成员不能处理非静态成员:
原因在于前者是 ...

是的,清晰了,多谢:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马