public class MainMDI extends javax.swing.JFrame {
private static MainMDI thiz;
public MainMDI() {
initComponents();
thiz = this;
}
}
我正在创建一个 MDI 应用程序。MainMDI 类是应用程序的主类,因此主方法位于该类中。上面的代码创建了一个名为 thiz 的静态变量,它在应用程序运行时指向 MainMDI 类的实例。
我打算使用变量 thiz 从主方法中访问 MainMDI 类的非静态(实例)成员。(我无法从主方法中访问非静态成员,因为主方法是类中的静态成员MainMDI 在我的应用程序中)。
public class MainMDI extends javax.swing.JFrame {
private static MainMDI thiz = this;
public MainMDI() {
initComponents();
}
}
但是当我尝试在上面的代码中初始化变量 thiz 时,编译器说非静态变量不能从静态上下文中引用。但我不是在静态上下文中指代这个,是吗?这是因为变量 this 是非静态的,在初始化静态变量 this 时尚未初始化?
另外,如果我没有将 MainMDI 类设置为主类并创建另一个具有 main 方法的类并将该类设置为主类,那会是更好的编程实践吗?