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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xby 初级黑马   /  2013-5-22 07:03  /  1019 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在外部其他类中怎么直接访问静态内部类的非静态成员呢?

5 个回复

倒序浏览
需要创建一个对象,new 外部类名.内部类().成员名();例如:new Outer.Inner().function();

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 给你一分鼓励

查看全部评分

回复 使用道具 举报
楼主最好是用代码的方式体现出来,诚心发帖,让大家知道你的意图是什么,这样自己学到的同时别人也学到了,加油吧   支持你。
回复 使用道具 举报
hadexs 发表于 2013-5-22 07:22
需要创建一个对象,new 外部类名.内部类().成员名();例如:new Outer.Inner().function(); ...

尽量用代码的形式体现你的回答,体现给楼主,这样学习才会事半功倍,加油
回复 使用道具 举报
class Outer
{
        public static class Inner
        {
                public void doStuff()        //这个就是静态内部类的非静态成员
                {
                        System.out.println("kk");
                }
        }
}


public class TestInner
{
        public static void main(String[] args)
        {
                Outer.Inner inner = new Outer.Inner();
                inner.doStuff();
                /**
                        因为Inner是静态的,所以可以通过【类名.成员名】来调用,
                        所以用new Outer.Inner(),而不需要先创建Outer对象。

                        因为doStuff()是非静态成员,所以必须new 出Inner对象。
                */
        }
}

运行结果是:“kk”

总结:
        1,Inner要被声明为public,在外部就可以创建Outer的实例对象
        2,通过Outer的实例对象,就可以创建Inner的实例对象
        3,于是通过Inner的实例对象,来调用内部类Inner的成员了

回复 使用道具 举报
楼主你同一个问题,发太多帖了吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马