乐趣区

关于java:面向对象最后一个关键点内部类的知识总结

外部类
定义:

   一个 java 文件能够蕴含多个 class,然而只能有一个 Public class, 如果一个类定义在另一个类的外部,此时能够被称之为外部类。

应用:

   创立外部类的时候,跟之前办法不一样,须要在内部类的后面增加外部类进行润饰:
InnerClassDemo.InnerClass inner  = new InnerClassDemo().new InnerClass();

特点

1、外部类能够不便的拜访外部类的公有属性(能够间接拜访)2、外部类不能间接拜访外部类的公有属性和办法,但能够通过在外部类中的办法 new 一个外部类对象来拜访 
 例如:public void show() {System.out.println("show");
        InnerClass inner = new InnerClass();
        System.out.println(inner.age);
    }
    class InnerClass{
        private int age;
        public void test(){System.out.println("test");
            System.out.println(id);
            System.out.println(name);
        }

特点补充(留神)

    1、外部类中不能够定义动态属性。2、外部类能够当作类中的一个一般成员变量,只不过此成员变量是 class 类型。3、如果外部类和外部类具备雷同的成员变量或办法,外部类默认拜访本人的成员变量或办法,如果要拜访外部类的成员变量,须要应用 this 关键字(类名.this. 属性名)。4、外部类是能够嵌套的。

语法

[ 外部类 外部类对象 = new 外部类;
外部类. 外部类 外部类对象 = 外部类对象 ().new 外部类 ();]
如果主办法在外部类外部,能够省略 Outer:Inner inner = out.new Inner();

分类:

 匿名外部类:当定义了一个类,实现了某个接口的时候,在应用过程中只须要应用一次,没有其余用处。思考到代买编写的简洁,能够思考不创立具体的类而采纳 new intertacename(){ 增加未实现的办法} 就叫做匿名外部类,实质上是 new 了一个接口的外部实现类

动态外部类:1、语法 new 外部类类名. 外部类 (). 办法名;外部类类名. 外部类 外部类对象名 = new 外部类类名. 外部类类名 ();2、在内部类中能够定义动态外部类,应用 static 关键字进行润饰

办法外部类 (理解):在外部类的办法中定义类
    注意事项:1、办法外部类不能在外部类的办法意外的中央应用,所以办法外部类不能应用拜访控制符和 static 修饰符
2、办法外部类如果想应用办法的参数,那么参数前必须加上 final 关键字

  

    
退出移动版