A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
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();   //外部类函数调用内部类函数
}
}
结果运行时死循环,怎么解啊?

5 个回复

倒序浏览
你自己把他写成死循环了啊。。。showOut调用showin,shouin又调用shouout,把shouin里的showout去掉就行了。。。

评分

参与人数 1技术分 +1 收起 理由
船长 + 1 赞一个!

查看全部评分

回复 使用道具 举报

回帖奖励 +1

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

那按要求要怎样才能在内部函数中调用外部函数呢?
回复 使用道具 举报
SpiderManZZH 发表于 2014-12-13 10:53
那按要求要怎样才能在内部函数中调用外部函数呢?

你这里写的代码已经能调用了啊- -只不过是死循环而已,分开两个,一个写内部函数调用外部,一个写外部调用内部就行了
回复 使用道具 举报
我也遇到了这样的问题了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马