黑马程序员技术交流社区

标题: 求解,内部类调用外部类函数成死循环 [打印本页]

作者: SpiderManZZH    时间: 2014-12-13 09:57
标题: 求解,内部类调用外部类函数成死循环
定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
public class Test6 {
public static void main(String[] args) {
  new Outer().showOut();
}
}
class Outer{
private int num = 10;
class Inner{      //定义内部类
  public void showIn(){
   System.out.println("内部类函数调用......"+num);
   showOut();
  }
}
public void showOut(){
  System.out.println("外部类函数调用...");
  new Inner().showIn();   //外部类函数调用内部类函数
}
}
结果运行时死循环,怎么解啊?


作者: 冥夜    时间: 2014-12-13 10:51
你自己把他写成死循环了啊。。。showOut调用showin,shouin又调用shouout,把shouin里的showout去掉就行了。。。
作者: Smart_lll    时间: 2014-12-13 10:53
亲,你在main函数中通过外部类对象调用了外部类中的函数showOut(),而在showOut()函数中创建了内部类的对象去调用了内部类中的ShowIn()函数,showIn()函数中又去调用了showOut().
简单的说:showIn()中调用了showOut(),而showOut中又调用了showIn()这样就形成了死循环。
作者: SpiderManZZH    时间: 2014-12-13 10:53
冥夜 发表于 2014-12-13 10:51
你自己把他写成死循环了啊。。。showOut调用showin,shouin又调用shouout,把shouin里的showout去掉就行了 ...

那按要求要怎样才能在内部函数中调用外部函数呢?
作者: 冥夜    时间: 2014-12-13 10:58
SpiderManZZH 发表于 2014-12-13 10:53
那按要求要怎样才能在内部函数中调用外部函数呢?

你这里写的代码已经能调用了啊- -只不过是死循环而已,分开两个,一个写内部函数调用外部,一个写外部调用内部就行了
作者: 芭芭拉2    时间: 2014-12-18 22:59
我也遇到了这样的问题了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2