Topic: 奇怪, static函数里面可以使用非static变量??? |
Print this page |
1.奇怪, static函数里面可以使用非static变量??? | Copy to clipboard |
Posted by: ydyd Posted on: 2006-06-25 04:26 下面程序compile, run 都没问题, 但是 变量 i没有定义为static, 怎么javac不报错, java也可以运行, 显示为 i 的初始值 0, 想问问大家问什么, public class A{ int i; public static void main(String argv[]){ System.out.println("main.i: " + new A().i); } |
2.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: why Posted on: 2006-06-25 11:38 Please read carefully: new A().i Got it? new A() |
3.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: ydyd Posted on: 2006-06-25 21:13 谢谢 看是看到了, 就是没明白 为什么 new了一个对象后 在static函数里面就可以引用里面的非static函数. 没明白 |
4.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: ydyd Posted on: 2006-06-25 21:16 对了 是不是因为new了以后, 变量 i 的使用权 就交给new出对象new A()了, 所以 main不管变量 i 是不是static的?? |
5.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: tomcatexpert Posted on: 2006-06-25 22:06 已经是一个A实例在使用i,都是non static,当然没问题 |
6.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: ydyd Posted on: 2006-06-25 23:13 OK OK~~ |
7.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: heartache Posted on: 2006-06-29 10:33 complex ! |
8.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: wwwabc0001 Posted on: 2006-06-29 14:53 关键在于main是一个特殊的函数,如果你自己在建立一个静态函数试试看,应该就不行的了。 |
9.Re:奇怪, static函数里面可以使用非static变量??? [Re: wwwabc0001] | Copy to clipboard |
Posted by: zcjl Posted on: 2006-06-29 16:04 wwwabc0001 wrote: are you sure? |
10.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: wqq0712 Posted on: 2006-07-02 20:14 特殊函数?应该不是你说的那样吧? 不是很清楚?? new A().i |
11.Re:奇怪, static函数里面可以使用非static变量??? [Re: wwwabc0001] | Copy to clipboard |
Posted by: sunjavaduke Posted on: 2006-07-08 22:53 wwwabc0001 wrote: of course it works~~~ it is not the reason of main,but new A() has generated an instance.and because the variable i was friendly(that can use in the same class and same package),so it works. if not,you use System.out.println(i); it will cause error. main is just a method of the class,like the other static method in some degree. |
12.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: zhjin790 Posted on: 2006-07-17 09:29 i是一个实例变量,int i的默认初始值是0 |
13.Re:奇怪, static函数里面可以使用非static变量??? [Re: ydyd] | Copy to clipboard |
Posted by: qkmadcat Posted on: 2006-07-23 14:09 你不用new a()试试,还可以的话就不用学java了 |
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 |