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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 乔青山 于 2014-2-13 18:14 编辑

比如这段代码
//import cn.dream.oop.test.innerclass.Face.Nose;

public class OuterClass {
            public static void main(String[] args) {
        //                Face f = new Face();
        //                Nose n = f.new Nose();                                                                //必须导入该类
                        Face.Nose fn = new Face().new Nose();        //不需要导入类
            }
}

class Face{
            int type;

    public class Nose{
                        String type;
               
                        void breath(){
                                    System.out.println("呼吸!!");
                        }
            }
}

直接创建一个内部类为什么需要导入Nose类呢?
Face f = new Face();
Nose n = f.new Nose();

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

2 个回复

倒序浏览
因为内部类在定义的时候被当做外部类的属性了,编译的时候就找不到内部类了,所以直接实例化内部类的时候要导入内部类。而通过外部类实例化内部类的时候,内部类是被当做属性的,所以不需要导入

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
梵天的梦 发表于 2014-2-13 17:50
因为内部类在定义的时候被当做外部类的属性了,编译的时候就找不到内部类了,所以直接实例化内部类的时候要 ...

哦。。。有点明白了,谢谢谢谢~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马