内部类
类的组成有 属性 方法 构造器 代码块(普通块 静态块 构造块 同步块) 内部块
内部类又有成员内部类(静态的 非静态的) 局部内部类(方法内 块内 构造器内)
就像变量有成员变量和局部变量 使用内部类也有成员内部类和局部内部类
成员变量在类中方法外 局部变量在方法内
内部类顾名思义就是类里面的类
public class TestOuter {
//属性
int age = 10;
//非静态成员内部类
class D{
int age = 20;
String name;
public void method(){
//内部类可以访问外部类的内容
System.out.println(age);
a();
int age = 30;
System.out.println(age);//30
System.out.println(this.age);//20
System.out.println(TestOuter.this.age);//10
}
}
//静态成员内部类
static class E{
public void method(){
//静态内部类中只能访问外部类中被static修饰的内容
}
}
//方法
public void a(){
System.out.println("这是a方法");
{
System.out.println("这是一个普通块");
//B就是普通块里面的类 就是局部内部类之一
class B{
}
}
//A是方法内里的块 也是局部内部类之一
class A{
}
D d = new D();
d.method();
}
{
System.out.println("这是构造块");
}
static {
System.out.println("这是静态块");
}
//构造器
public TestOuter(){
//构造器里的类 也是局部内部类之一
class C{
}
}
public TestOuter(int age) {
this.age = age;
}
}
成员内部类里面可以有属性 方法 构造器
修饰符有 public default protected private final abstract
内部类可以访问把外部类的内容
静态内部类中只能访问外部类中被static修饰的内容