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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘印12 中级黑马   /  2013-3-25 16:16  /  2748 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求各位大写帮忙 内部类怎么调用外部累的私有函数??

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-26 12:23

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

8 个回复

正序浏览
罗平 中级黑马 2013-3-25 20:45:04
9#
当然是直接引用咯 ,内部类持有内部类的一个引用,但是外部类不能直接使用内部类成员
因为在使用外部类时有可能还没有创建内部类对象。即使创建了,一个外部类对象也可能对应多个内部类对象。
如果一定要在外部类中使用内部类成员,那么需要创建内部类对象,通过对象来访问。
内部类中不能定义静态成员。但是静态内部类中可以定义静态成员。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
内部类调用外部类的函数直接调用就可以了。
回复 使用道具 举报
内部类持有一个外部类的引用,直接调用就OK。
回复 使用道具 举报
public class Test2 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                //实例化内部类,调用构造方法,通过构造方法调用外部类的私有run()方法
                new Test2().new in();
        }
        private void run(){
                System.out.println("this is out");
        }
         class in{
                public in() {
                        //通过new外部类.外部类方法名调用
                        new Test2().run();
                       
                }
        }

}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
首先,你这个问题,很特别,直接通过类名.this.变量名调用就可以了,
你得先试试,然后再问

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
内部类就是外部类的一个成员,内部类持有一个外部类的引用,所以可以直接调用就可以了。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
直接调用就行,因为内部类中持有了一个外部类的引用

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
class Outer{
    private viod method(){
    }
    new Inter(){
        method();
    }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马