有人可以告诉我,如何在班级调用方法?
假设我有一个类如下,那么我们可以在类级调用test1Method吗?如果不正确,请告诉我原因..
class Test2 {
Test1 t1=new Test1();
t1.test1Method();
public void test2Method() { }
}
答案 0 :(得分:4)
不,你不能直接在类下面有方法调用语句或任何其他语句。正如JLS Section 8 - Classes中所述:
类的主体声明成员(字段和方法以及嵌套类和接口),实例和静态初始化器以及构造函数(第8.1.6节)。
您必须在这些成员(某个方法),初始化程序或构造函数中移动方法调用。
答案 1 :(得分:3)
您可以在instance block
内拨打电话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
时会执行静态块。
答案 2 :(得分:1)
如果您可以控制test1Method方法的返回类型,那么您可以使用该方法返回Test1对象并编写如下代码。
class Test2 {
Test1 t1=new Test1().test1Method();
public void test2Method() { }
}