32.多种内部类
-
成员内部类
-
在类里边嵌套定义一个类,这个内部的类我们就称其为成员内部类
package com.inner.demo;
public class Outer {
private int age = 10;
public void out() {
System.out.println("外部类");
}
class Inner {
public void in() {
System.out.println("内部类");
}
public void getAge() {
System.out.println("没想到吧,虽然你是外部类的私有属性我也可以访问你,你是" + age);
}
}
}
package com.inner.demo;
public class Demo1 {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
outer.out();
inner.in();
inner.getAge();
}
public void method(){
class Inner{
public void in(){
System.out.println("我是一个局部的内部类");
}
}
}
}
-
静态内部类,当给成员内部类加上静态,她就变成了静态内部类
-
同一个java文件中只能有一个public class 外部类,而且类名必须和文件名相同
-
局部内部类,在某个局部区域内定义的类,叫做局部内部类
-
还有一些没有名字的类我们称其为匿名内部类
package com.inner.demo;
public class Demo2 {
public static void main(String[] args) {
new Demo1().method(); // 没有名字的对象,我们称其为匿名对象
UserSever inner = new UserSever() {
@Override
public void method() {
System.out.println("我是匿名内部类");
}
};
inner.method();
}
}
interface UserSever {
void method();
}