有人可以告诉我,如何在类级别调用方法吗?
假设我有一个像下面这样的类,那么我们可以在类级别调用 test1Method 吗?如果不正确请告诉我原因..
class Test2 {
Test1 t1=new Test1();
t1.test1Method();
public void test2Method() { }
}
有人可以告诉我,如何在类级别调用方法吗?
假设我有一个像下面这样的类,那么我们可以在类级别调用 test1Method 吗?如果不正确请告诉我原因..
class Test2 {
Test1 t1=new Test1();
t1.test1Method();
public void test2Method() { }
}
不,您不能在类下直接拥有方法调用语句或任何其他语句。如JLS 第 8 节 - 类中所述:
类的主体声明成员(字段和方法以及嵌套类和接口)、实例和静态初始化器以及构造器(第 8.1.6 节)。
您必须在这些成员(某些方法)、初始化程序或构造函数中的任何一个中移动方法调用。
您可以在实例块中调用它们
class Test2 {
{
Test1 t1=new Test1();
t1.test1Method();
}
}
每次构造类型的对象时都会调用实例或初始化程序块Test2
。JVM 确保在构造函数中复制实例块内容,如下所示
class Test2 {
public Test2() {
{
Test1 t1=new Test1();
t1.test1Method();
}
}
}
class Test2 {
static {
Test1 t1=new Test1();
t1.test1Method();
}
}
静态块在第一次Test2
加载类时执行。
如果您可以控制 test1Method 方法的返回类型,那么您可以使用该方法返回 Test1 对象并编写如下代码。
class Test2 {
Test1 t1=new Test1().test1Method();
public void test2Method() { }
}