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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.io.Externalizable;

/*
*
* 7、 定义一个包含私有成员变量和函数的类,再定义一个内部类,
* 在内部类函数中访问外部成员变量,并调用外部函数。
* 在外部类函数中创建内部类对象,调用内部类函数。
*
* */
public class Test7 {
        //外部类私有成员变量
        private int externalMembers = 1;
       
        //外部类私有成员函数
        private void externalFun() {
                System.out.println("外部成员函数");
               
                //在外部类函数中创建内部类对象
                Inner in = new Inner();
                //调用内部类函数
                in.innerFun();
        }

        //内部类
        public class Inner{
                public void innerFun(){
                        //访问外部成员变量
                        System.out.println(externalMembers);
                       
                        //调用外部成员函数
                        externalFun();
                       
                }
        }
        public static void main(String[] args) {
                new Test7().externalFun();

        }
}

2 个回复

倒序浏览
这属于递归调用中的一种间接递归调用,递归调用必须要有终止的条件,不能嵌套太多层次,因为只有压栈,没有出栈,所以堆栈一定会溢出。

评分

参与人数 1技术分 +1 收起 理由
sk0806 + 1 很给力!

查看全部评分

回复 使用道具 举报
kerner 发表于 2014-11-20 20:28
这属于递归调用中的一种间接递归调用,递归调用必须要有终止的条件,不能嵌套太多层次,因为只有压栈,没有 ...

出题用意在哪里,是我理解错了吗,我知道会形成死循环,但出题的用意在哪里呢,是创建内部类对象要在另一个内部函数中吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马