哈喽哈喽,萌老师好久不见了啊,这节课的内容暂时没有什么问题,但我在敲代码的时候遇到了一个别的问题,或者说有一个突发奇想吧:
package com.geekbang;
public class MerchandiseV2WithConstructorAppMain {
int testInt = 100;
public static void main(String[] args) {
System.out.println(this.testInt);
}
}
此时我运行,它会报错:无法从静态上下文中引用非静态变量this,而输出语句写在psvm外面也不行!
我们能run的java文件也是一个类,毕竟开头是public class对吧,那么问题来了:
1. 会有需要在这样的java文件的psvm外面写代码的情况吗?
2.如果会在psvm外面写代码,那如何使用那些psvm外面的代码呢?比如我上面这个就报错了
求指点,谢谢~~
展开
作者回复: 在main方法中创建实例。通过实例的引用调用非static的方法。
main方法是静态方法,里面不能用this自引用。你可以
M m=new M();
然后输出m.testInt