内部类
内部类就是在一个类的内部再定义一个类
- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类
上代码
package com.example.oop.demo05;
public class Outer {
public int id = 10;
// 成员内部类
public class MemberInner {
public void testA() {
System.out.println("成员内部类");
System.out.println(id);
}
}
// 静态内部类
public static class StaticInner {
public void testB() {
System.out.println("成员内部类");
}
}
public void testC() {
// 局部内部类
class LocalInner {
public void testC() {
System.out.println("局部内部类");
}
}
// 局部内部类只能在作用域内被调用
LocalInner localInner = new LocalInner();
localInner.testC();
// 匿名调用局部内部类
new LocalInner().testC();
}
}
// 一个java类中可以有多个class类,但只能有一个public类
class A {
public static void main(String[] args) {
// 成员内部类调用
Outer outer = new Outer();
Outer.MemberInner memberInner = outer.new MemberInner();
memberInner.testA();
// 静态内部类调用
Outer.StaticInner staticInner = new Outer.StaticInner();
staticInner.testB();
// 局部内部类调用
outer.testC();
// 匿名内部类:没有声明类变量
new B() {
@Override
public void testC() {
}
};
}
}
interface B {
void testC();
}