关于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关键字

  

    

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理