黑马程序员技术交流社区

标题: 内部类能访问外部类的函数吗?怎么调用呢 [打印本页]

作者: dark_horse_xu    时间: 2014-9-27 00:30
标题: 内部类能访问外部类的函数吗?怎么调用呢
本帖最后由 dark_horse_xu 于 2014-10-2 00:30 编辑

class OuterClass{
        private int num = 7;//定义一个私有的成员变量。
        void show(){
                System.out.println("Outershow");
       }
        class InnerClass{
                //定义一个函数
                void function(){
                        System.out.println(++num);//内部类访问外部成员变量。
                }
我想在这里调用一下外部函数show();怎么写代码啊?
        }
        //定义一个函数。
        void method(){
                InnerClass in = new InnerClass();//在外部类函数中创建内部类对象
                in.function();//调用内部类函数。
                in.show();//
        }
}
public class Test6{
        //主函数,程序的入口。
        public static void main(String[] args){
                OuterClass out = new OuterClass();//创建一个外部类对象
                out.method();//调用外部类方法
        }
}
这个程序满足调用外部函数吗?PS:我想输出结果为Outershow和8.调用外部函数来实现。
        




作者: 杨佳名    时间: 2014-9-27 01:01
本帖最后由 杨佳名 于 2014-9-27 01:39 编辑

class OuterClass{
        private int num = 7
        void show(){
                System.out.println("Outershow");
       }
        class InnerClass{
              
                void function(){
                        System.out.println(num++);//先打印后自加。
                }

        }
      
        void method(){
                InnerClass in = new InnerClass();
                in.function();
                show();//直接调用即可
        }
}
public class Test6{
        
        public static void main(String[] args){
                OuterClass out = new OuterClass();
                out.method();
        }
}
作者: dark_horse_xu    时间: 2014-9-27 01:07
杨佳名 发表于 2014-9-27 01:01
class OuterClass{
        private int num = 7;//定义一个私有的成员变量。        !!内部类调用必须f ...

内部类定义在局部变量时,次必须用final修饰,我是定义在成员变量位置不需要final吧。。
作者: dark_horse_xu    时间: 2014-9-27 01:09
杨佳名 发表于 2014-9-27 01:01
class OuterClass{
        private int num = 7;//定义一个私有的成员变量。        !!内部类调用必须f ...

是可以直接调用,但是不是内部类调用的啊,这是外部类的method()直接调用的show();
作者: dark_horse_xu    时间: 2014-9-27 01:15
本帖最后由 dark_horse_xu 于 2014-9-27 01:17 编辑

class OuterClass{
        private int num = 7;//定义一个私有的成员变量。
        void show(){
                System.out.println("Outershow");
       }
        class InnerClass{
                //定义一个函数
                void function(){
                        System.out.println(++num);//内部类访问外部成员变量。                       show();//直接调用了。
                }我想在这里调用一下外部函数show();怎么写代码啊?
        }
        //定义一个函数。
        void method(){
                InnerClass in = new InnerClass();//在外部类函数中创建内部类对象
                in.function();//调用内部类函数。
        }
}
public class Test6{
        //主函数,程序的入口。
        public static void main(String[] args){
                OuterClass out = new OuterClass();//创建一个外部类对象
                out.method();//调用外部类方法
        }
}


作者: 杨佳名    时间: 2014-9-27 01:19
dark_horse_xu 发表于 2014-9-27 01:07
内部类定义在局部变量时,次必须用final修饰,我是定义在成员变量位置不需要final吧。。 ...

:L想错了,打印哦8就++num
作者: 杨佳名    时间: 2014-9-27 01:38
外部的show方法 创建外部的对象调用。没什么纠结的啊
作者: dark_horse_xu    时间: 2014-9-27 15:16
杨佳名 发表于 2014-9-27 01:38
外部的show方法 创建外部的对象调用。没什么纠结的啊

我直接用show();就能调用了。




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