Day12_内部类
内部类
内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就是内部类,而A类相对B类来说就是外部类了
public class Outer {
private int id;
public void out(){
System.out.println("这是外部类的方法");
}
public class Inner {
public void in(){
System.out.println("这是内部类的方法");
}
}
}
public static void main(String[] args) {
Outer outer = new Outer();
//通过外部类来实例化内部类
Outer.Inner inner = outer.new Inner();
outer.out();
inner.in();
}
1.成员内部类
//一个JAVA类里边可以有多个class但是只能有一个
//public class
public class Outer {
}
class A{
}
2.静态内部类
static内部类是内部类中一个比较特殊的情况,Java文档中是这样描述static内部类的:一旦内部类使用static修饰,那么此时这个内部类就升级为顶级类。也就是说,除了写在一个类的内部以外,static内部类具备所有外部类的特性
如:在方法或属性上使用static关键字
public class Outer {
public static class Inner {
public static void in(){
System.out.println("这是内部类的方法");
}
}
}
}
3.局部内部类
public class Outer {
//局部内部类
public void method(){
class Inner{
public void in(){
}
}
}
}
4.匿名内部类
public class Test {
public static void main(String[] args) {
//没有名字初始化类,不用将实例保存到变量中
new Apple().eat();
new UserService() {
@Override
public void add() {
}
};
}
}
class Apple{
public void eat(){
System.out.println("eat a Apple");
}
}
interface UserService{
void add();
}

浙公网安备 33010602011771号