在Java中的main方法中可以使用this关键字吗?为什么? 我现在知道不能用this,可为什么呢?好像是与内存的堆与栈有关, 请高手指点下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不可以,main方法是静态的,不能使用非静态的this关键字 那为什么静态的方法不可以使用非静态的关键字this呢? 因为静态方法在编译的时候就加载了而this是所在类的隐式对象.在加载时并不存在当前类的对象所以不行 静态方法是在类加载的时候执行.类刚加载可能还没有创建对象呀,使用就不能用this li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起) 好幽默啊一般的书上都有原话,就是静态方法只能使用静态变量,但是非静态方法可以使用非静态的变量和静态变量 本帖最后由 java2000_net 于 2008-10-10 12:02:12 编辑 本帖最后由 java2000_net 于 2008-10-10 12:02:50 编辑 原因在于 this关键字表示的事本实例本对象的内容我们都知道对象要在建立之后才能调用 就好比java中要用x的属性和方法就必须在他实例化以后 也就是被new了以后但是如果是main这个静态方法的话静态对象是不能知道他是否被实例化的,他无需new 无需手动实例化 所以也无法直接使用this关键字 this 指当前对象的实例可是main不需要实例就能运行,所以在他运行时,根本没有实例,也就没有this this关键字指“当前对象实例”,然而main方法是静态的,它是程序的入口,在程序编译的时候,它会自动地被JVM加载到内存中。注意,在这个时侯,程序还没有实例化对象,所以,自然不能在main方法里使用非静态的this了。 this代表当前对象的引用,main是静态方法,对象没创建前就存在了,所以不能使用this 给说一下 比较两个list中的值,求两个时间段的算法 面试中遇到关于LinkedList和ArrayList的逆序问题,请大家帮忙 是哪的问题?谢谢各位了 java万年历 JDialog 如何控制最大 size? 有人遇见这两种种问题吗? nio读写的问题:服务器发送两次消息,客户端读取时会获得两条消息的叠加 Java中类似C语言中isdigi()或者isalpha()判断是否数字字母的函数是哪个? 调查:你面试时穿西装了吗? 多线程死锁是怎么回事? 126,163,sina油箱不能通过javamail验证,而sohu则可以啊
而this是所在类的隐式对象.在加载时并不存在当前类的对象所以不行
一般的书上都有原话,就是静态方法只能使用静态变量,但是非静态方法可以使用非静态的变量和静态变量