1、成员内部类
含义;在一个类中定义另一个类,可以访问外部类成员,包括私有。外部类成员要访问内部类的方法,得创建内部类的对象。
访问方式
(1)、需要静态的成员内部中的成员方法
外部类名.内部类名 对象名=new 外部类对象().new内部类对象();
(2)、静态的成员内部类中成员的访问方式:
外部类名.内部类名 对象名=new 外部类名.内部类名();
2、局部内部类
含义
在局部位置(外部类的成员方法中)定义的一个类
class Test{
int num=2;
//成员内部类
public class Test1{
public void num() {
System.out.println(num);
}
}
//局部内部类(在方法中)
public void num2() {
class Test3{
}
}
}
public class Demo {
public static void main(String[] args) {
Test.Test1 t=new Test().new Test1();
t.num();
}
}
3、匿名内部类
它是内部类一种简化方式!
格式:new 类名/接口名/抽象类(){
重写方法;
}.方法名();//调用方法
```java
abstract class Inner{
public abstract void show();
public abstract void show2();
}
class Aa{
public void method() {
//匿名内部类
new Inner() {
public void show() {
System.out.println("show Inner");
}
public void show2() {
System.out.println("show2 Inner");
}
}.show2();
}
}
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Aa a=new Aa();
a.method();
}
}
## 匿名内部类的本质是:
继承该类或者是实现该接口的子类对象!