Java程序导致无限循环

时间:2016-08-20 07:23:00

标签: java class interface

这是我的Java代码。我创建了一个带有两个类的接口abc。 class a1实现了接口abc。类b1使用接口函数display来显示一些数据。

a1在无限循环中运行。

interface abc
{
  display(String s);
}

class a1 implments abc
{
   a1(b1 obj)
  {
  }
    public void display(String s)
    {
        System.out.println(s);
    }
}

class b1
{
    abc abc1;
    private xyz x;
    b1(xyz xyz1)    //xyz is interface
    {
           this.x = xyz1; 
    }
    public void show()
    {
          abc1 = new a1(new b1(this.x));   //  here is problm.. this statement cause infinite loop.
          String str = "Hello"; 
          abc1.display(str);
    }
}

该程序导致类a1的无限循环。 请找到问题并帮我解决。

1 个答案:

答案 0 :(得分:0)

它没有无限循环。 我创建了一个main并调用了b1.show并且它已成功运行。

interface abc
{
   void display(String s);
}

class a1 implements abc
{  
   a1(b1 obj)
  {
}
  public void display(String s)
  {
     System.out.println(s);
  }
}

class b1
{
   abc abc1;
   private xyz x;
   b1(xyz xyz1)    //xyz is interface
   {
       this.x = xyz1; 
}
    public void show()
    {
        abc1 = new a1(new b1(this.x));   //  here is problm.. this statement cause infinite loop.
        String str = "Hello"; 
        abc1.display(str);
   }
}
public class Main{
    public static void main(String args[]){
      xyz xyz1 = null;
        b1 objb1=new b1(xyz1); 
      objb1.show();
      System.out.println("out of all classes..");
  }

}

interface xyz{

}