内部类
1.内部类就是在一个类的内部再定义一个类
2.成员内部类
3.静态内部类
4.局部内部类
5.匿名内部类
成员内部类:
package com.oop.DemoTen;
public class Outer {
private int num = 20;
public void out(){
System.out.println("这是外部类的方法。");
}
public class Inner{
public void in(){
System.out.println("这是内部类的方法。");
}
public void getNum(){
System.out.println(num);
}
public void getOut(){
out();
}
}
}
public class Application {
public static void main(String[] args) {
Outer out = new Outer();
//通过外部类来实例化内部类
Outer.Inner inner = out.new Inner();//成员内部类
inner.getNum();//获得外部类的私有属性
inner.getOut();//获得外部类的方法
}
}
静态内部类:无法访问外部非静态成员
package com.oop.DemoTen;
public class Outer {
private int num = 20;
public void out(){
System.out.println("这是外部类的方法。");
}
public static class Inner{
public void in(){
System.out.println("这是内部类的方法。");
}
}
}
局部内部类:
package com.oop.DemoTen;
//一个java类中可以有多个class类,但是只能有一个public class
public class Outer {
public void method(){
//局部内部类
class Inner{
public void in(){
}
}
}
}
匿名内部类:
package com.oop.DemoTen;
//一个java类中可以有多个class类,但是只能有一个public class
public class Outer {
public static void main(String[] args) {
//匿名内部类
UserService userService = new UserService(){
@Override
public void run() {
}
};
}
}
interface UserService{
void run();
}