Java,从一个类的两个对象调用的方法.同一个类中的一个对象和其他类中的一个对象

Ash*_*mar 1 java

我有这个代码,我在其中创建了一个类的对象MyClass.我在main方法中创建了一个对象.我想调用类的方法,但它StackovetrflowError在运行时给出.建议我克服错误的方法.

这是代码......

class MyClass {


  public MyClass obj2  =new MyClass();


    public void show()
    {
        System.out.println("in show method...");
    }

    void message()
    {
        System.out.println("in message method...");
    }
}


public class AccessDemo {

    public static void main(String[] args) {

         MyClass obj1  = new MyClass();

            obj1.obj2.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想打印的方法就是里面的消息show()message().

Hov*_*els 6

你在这里进行了不必要的递归:

class MyClass {

    public MyClass obj2 =new MyClass();
Run Code Online (Sandbox Code Playgroud)

你为什么要创建一个MyClass的实例里面的MyClass?这将无休止地和递归地重复,直到你的内存不足.

解决方案:不要这样做.摆脱obj2变量,除了使程序失败之外没有任何其他目的.而只需在main方法中创建的obj1变量上调用方法.