内部类概述

什么是内部类?

     在一个类的里面,再定义一个类。

public class Outer{                 //外部类
   public class Inner {                //内部类
 }
}

为什么要学习内部类?

   例如: 要求写一个汽车类型的JAVABEAN

   属性: 汽车的品牌,车龄,颜色,发动机的品牌,使用年限

  其中发动机的品牌和使用年限相对于汽车来讲是相对独立的,因此我们可以知道如果再内部属性有相对独立的一部分时可以用内部类, 内部类表示的事物是外部类的一部分。

内部类的访问特点

 内部类可以直接访问外部类的成员,包括私有

 外部类要访问内部类的成员时,必须创建对象

 

 

 内部类的分类

 成员内部类

 静态内部类

 局部内部类

 匿名内部类

前三种基本上只在看源码的时候才能用上,做个了解就好,最后一种以后要经常用。

成员变量的规定方式

什么是静态内部类?

   静态内部类是一种特殊的成员内部类,其实就是在内部类前加Static关键词。

直接创建静态内部类对象的方式?

  Outer.Inner oi = new Outer.Inner();

如何调用静态内部类种的方法?

  非静态方法: 先创建对象,用对象调用

  静态方法: 外部类名.内部类名.方法名();

 匿名内部类(重点)

 匿名内部类本质上就是隐藏了名字的内部类

格式: 

        new 类名或者接口名() {

         重写方法;

};

 格式细节:

     包含了继承或实现,方法重写,创建对象。

     除去new 类名或接口名 整体就是一个类的子类对象或者接口的实现类对象,而上述格式其实就是创建了一个类的子类的对象或者接口的实现类对象。

使用场景

      当方法的参数是接口或者类时。

      以接口为例,可以传送这个接口的实现类对象。

      如果实现类只要用一次,就可以匿名内部类简化代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值