Topic: 请教一个问题 (static main)

  Print this page

1.请教一个问题 (static main) Copy to clipboard
Posted by: walgr2k
Posted on: 2004-04-24 05:36

我在编译时遇到一个问题,如果我将Application中的main前面的static去掉,可以正常编译,但运行时会有NoSuchMethodFound error,指的是main.
如果加上static, 编译时会有"Non-static variable temp cannot be referenced from the static context".
请教高手指点.

2.Re:请教一个问题: [Re: walgr2k] Copy to clipboard
Posted by: happysilver
Posted on: 2004-04-26 15:35

这个问题要看看你的source code!我们所说到的main方法应该叫做程序的入口方法,整个程序的入口,注定了它是public成员(虽然有人说static类型的方法不属于类)。还有,入口方法必须是static方法,而在static方法里面值能够访问static类型的变量和方法,当然还可在main方法中调用该类的构造函数,以new constructor()来调用该类的非static方法。
所以,看到你的错误提示:
第一,去掉了static,就使得你的程序没有了入口方法,编译器就会告诉你,没有主类;
第二,恢复了static,后程序有了入口方法,但你的main方法里面肯定有直接调用的本类的非static方法,这样肯定也要出错!

3.Re:请教一个问题 (static main) [Re: walgr2k] Copy to clipboard
Posted by: tangming
Posted on: 2004-04-27 09:13

错误不是说了么,
temp变量是Non-static的,不能被static context引用

4.Re:请教一个问题 (static main) [Re: walgr2k] Copy to clipboard
Posted by: dingjunming
Posted on: 2004-04-29 01:34

main里面调用了外面的临时变量,或者说是类的非静态变量

5.Re:请教一个问题 (static main) [Re: walgr2k] Copy to clipboard
Posted by: jameszhang
Posted on: 2004-04-29 11:08

老问题

6.Re:请教一个问题 (static main) [Re: walgr2k] Copy to clipboard
Posted by: yamakasy
Posted on: 2004-04-29 12:23

静态方法不可以调用非静态成员变量.

静态方法可以在直接用类名直接调用(当然也可以用类对象调用),而此时,编译器是不能判断非静态成员变量是否已经初始化.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923