黑马程序员技术交流社区

标题: 直接创建一个内部类对象的时候为什么要导入类 [打印本页]

作者: 乔青山    时间: 2014-2-13 17:20
标题: 直接创建一个内部类对象的时候为什么要导入类
本帖最后由 乔青山 于 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();
作者: 梵天的梦    时间: 2014-2-13 17:50
因为内部类在定义的时候被当做外部类的属性了,编译的时候就找不到内部类了,所以直接实例化内部类的时候要导入内部类。而通过外部类实例化内部类的时候,内部类是被当做属性的,所以不需要导入

作者: 乔青山    时间: 2014-2-13 18:13
梵天的梦 发表于 2014-2-13 17:50
因为内部类在定义的时候被当做外部类的属性了,编译的时候就找不到内部类了,所以直接实例化内部类的时候要 ...

哦。。。有点明白了,谢谢谢谢~




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