关闭

内部类

187人阅读 评论(0) 收藏 举报

        1.在类中定义的类, 就是内部类
 2.内部类和普通类的不同:
  类名是: 外部类名.内部类名
  创建方式: 先要创建外部类对象, 才能创建内部类对象. 例如: Outer.Inner inner = new Outer().new Inner();
  应用场景: 在某种情况下, 一个类的创建, 需要另一个类的对象的时候, 就可以声明为内部类.
 3.内部类使用外部类的成员:
  访问外部类变量: 外部类名.this.变量名
  访问外部类方法: 外部类名.this.方法名
  内部类可以访问外部类的成员, 因为内部类创建的时候, 肯定会有外部类对象.
  外部类不能访问内部类成员, 因为创建外部类的时候, 可能没有内部类.
  如果外部类一定要访问内部类的话, 可以先创建一个内部类, 再调用其成员.
  
二.方法中的内部类
 1.当一个类只在某个类的一个方法中使用的时候, 就可以定义在那个方法中.
 2.方法中的内部类只能在方法中访问
 3.方法中的内部类, 必须先定义才能使用. 使用的代码必须在定义的后面.
 4.方法中的内部类, 要访问方法中的局部变量, 这个变量要声明为final.
              因为在方法结束的时候, 栈空间释放, 普通变量都会被销毁.
 而内部类对象可能还有其他引用可以到达, 对象仍然可用, 如果这个时候变量被销毁        了, 程序就会出错。
  
三.静态内部类
 1.静态内部类, 在外部类被加载之后就能用. 不需要创建外部类对象
 2.静态内部类中可以定义静态成员
 3.静态内部类中不可以访问非静态成员
 
四.匿名内部类
 1.当某个类的子类只在方法中使用的时候, 我们可以将这个类定义在方法中.
 2.当这个类又只使用一次的时候, 我们可以不给它定义名字. 使用匿名内部类的形式
 3.匿名内部类的定义格式:  new 父类名(){类定义}
        4.匿名内部类程序不能写构造函数。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9232次
    • 积分:252
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档