黑马程序员技术交流社区

标题: 如果说静态方法只能处理静态成员的话 [打印本页]

作者: 赵建飞    时间: 2012-7-30 16:18
标题: 如果说静态方法只能处理静态成员的话
本帖最后由 赵建飞 于 2012-7-31 10:18 编辑

那么,main()函数也是一只活生生的静态方法呀,为什么可以胡作非为呢?我知道此刻我短路了,发热中。
作者: 尤洋    时间: 2012-7-30 17:07
本帖最后由 尤洋 于 2012-7-30 17:09 编辑

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

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

作者: 艾衍年    时间: 2012-7-30 17:29
main方法要是调用本类的成员和方法时,要有本类对象或者该成员或者方法是静态的才行啊,所以不要乱啦
作者: 陈红建    时间: 2012-7-30 17:43
我对main是这么理解的
每个程序运行的时候都有他的一个入口地址
可以把class文件抽象成一个exe文件啊。管他是静态还是非静态,总之程序需要一个入口。 哎。。要仔细深究一会脑袋就大了
作者: 赵建飞    时间: 2012-7-31 10:19
尤洋 发表于 2012-7-30 17:07
要明白其中缘由的话  首先必须明白为什么说静态方法只能处理静态成员不能处理非静态成员:
原因在于前者是 ...

是的,清晰了,多谢:)




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