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 |