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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 征服 中级黑马   /  2014-4-6 22:01  /  1095 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 征服 于 2014-4-7 16:31 编辑

内部类有点搞不懂,请高手指导!谢谢!
public class OuterClass
{
        innerClass in = new innerClass(); // 在外部类实例化内部类对象引用
        
        public void ouf()
        {
                in.inf(); // 在外部类方法中调用内部类方法
        }
        
        class innerClass
        {
                innerClass() { // 内部类构造方法
                }
               
                public void inf() { // 内部类成员方法
                }
               
                int y = 0; // 定义内部类成员变量
        }
        
        public innerClass doit() { // 外部类方法,返回值为内部类引用
                // y=4; //外部类不可以直接访问内部类成员变量
                in.y = 4;
                return new innerClass(); // 返回内部类引用
        }
        
        public static void main(String args[]) {
                OuterClass out = new OuterClass();
                // 内部类的对象实例化操作必须在外部类或外部类中的非静态方法中实现
                innerClass in=doit();
                innerClass in2=new innerClass();
        }
}

3 个回复

倒序浏览
你的问题是什么呢。。。和这代码有啥关系。。。= =!
内部类访问特点:
1,内部类可以直接访问外部类中的成员。
2,外部类要访问内部类,必须建立内部类的对象。
内部类能直接访问外部类中成员,是因为内部类持有了外部类的引用,即外部类名.this。
内部类也可以存放在局部位置上,但是内部类在局部位置上只能访问局部中被final修饰的局部变量。
内部类的成员不可以是static的,如果有,类自己也得是static的,如果是static的,在使用这个静态内部类的时候不需要实例化外部类,直接把Outer.Inner当成外部类使用。
回复 使用道具 举报
学习学习!
回复 使用道具 举报
嗯,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马