码迷,mamicode.com
首页 > 其他好文 > 详细

5.内部类

时间:2019-12-21 00:25:29      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:接口   public   外部类   创建   默认   修饰符   集中   定义   stat   

内部类

例如:

    class A {                   //外部类
        class B {  }            //内部类
}

上面的类编译之后会生成两个独立的类:A.class A$B.class
内部类可以访问外部类的私有成员

集中内部类:
  1. 成员内部类:在一个类里面有一个类,例如上面的例子
    创建内部类对象:先创建外部类对象,再创建内部类对象(A a = new A(); A.B b = a.new B();)

  2. 静态内部类:内部类的修饰符为static
    特点:①只能访问外部类的静态成员②可以直接创建内部类对象
    创建内部类对象:A.B b = new A.B();
  3. 局部内部类:在外部类的成员方法里面定义一个类
    作用范围:从定义开始,到所在代码块结束
    特点:①把创建对象语句写在方法里,当外部类调用方法时创建局部内部类②局部内部类不仅可以访问外部类的成员,还能访问外部类的局部变量,但必须加上final(常量),(1.8以上可以不写,虚拟机会根据代码默认加上)
main:A a = new A(); 
a.method();  //注意,应将局部类的创建在方法内
class A { 
public void method() {
    class B {   }
}
}
  1. 匿名内部类:是一种特殊的内部类
    条件:①实现一个接口或是继承一个类时②只会创建这个类的一个对象时
    例如:在main函数内实现一个接口IA:
IA a = new IA(){     //直接实现该几口,没有要实现该接口的类名
        @Override
        public void method() { }//实现该接口的方法

5.内部类

标签:接口   public   外部类   创建   默认   修饰符   集中   定义   stat   

原文地址:https://www.cnblogs.com/linanana/p/12075387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!