那你前面的q.w为什么不写成q().w呢
q()是在调用q的构造函数啊
你非要这么搞,就得写成
new (new q()).w()
先new一个q的实例,再访问q实例下的w
因为 new q().w() 返回的是一个 w 对象,而不是一个 q 对象
这样实例化
q.w g = new q.w();
静态内部类,他是依附于类,而不是对象;所以是new q.w(); 可以和静态属性类比
A)可以的构造函数可以执行任何操作,类似于普通方法。
静态成员(包括静态变量和静态方法)隶属于类本身而不是实例对象,所以在初始化的时候不需要在类名后加上括号。
简单来说,在 Java 中,静态变量和静态方法存储在内存的数据区域中,而对象的信息则存储在堆内存中。因此,静态成员与类相关,而不是与实例相关。因此,在初始化静态成员时,可以直接使用类名来引用它们。
以下是一个简单的示例,展示了如何在 Java 中初始化静态变量和静态方法:
public class MyClass {
static int myStaticVariable = 10; // 静态变量
public static void myStaticMethod() { // 静态方法
System.out.println("This is a static method");
}
}
使用类名来访问静态变量和静态方法:
int myVal = MyClass.myStaticVariable; // 访问静态变量
MyClass.myStaticMethod(); // 调用静态方法
总结来说,使用类名来初始化静态成员可以更好地表明它们与类相关,而不是与实例对象相关。