1. 内部类
1.1 内部类概述
内部类:就是在一个类中定义一个类。
举例:在一个类A定义一个类B,类B就被称为内部类
1.2 成员内部类
1.3 局部内部类
public class Outer {
private int num = 10;
public void method(){
class Inner {
int num2 = 20;
public void show(){
System.out.println(num);
System.out.println(num2);
}
}
Inner i = new Inner();
i.show();
}
}
/*
测试类
*/
public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
}
1.4 匿名内部类
public class Outer {
public void method(){
/*new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
};*/
/*new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
}.show();
new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
}.show();
*/
Inter i = new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
};
i.show();
}
}
public interface Inter {
void show();
}
/*
测试类
*/
public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
}
1.5 匿名内部类在开发中的使用
/*
跳高接口
*/
public interface Jumpping {
void jump();
}
/*
操作类 里面方法参数是接口名
*/
public class JumppingOperator {
public void method(Jumpping j){
j.jump();
}
}
public class Cat implements Jumpping {
@Override
public void jump() {
System.out.println("猫可以跳高了");
}
}
/*
测试类
*/
public class JumppingDemo {
public static void main(String[] args) {
//创建接口操作类,调用method方法
JumppingOperator jo = new JumppingOperator();
Jumpping j = new Cat();
jo.method(j);
System.out.println("----------");
jo.method(new Jumpping() {
@Override
public void jump() {
System.out.println("猫可以跳高了");
}
});
jo.method(new Jumpping() {
@Override
public void jump() {
System.out.println("狗可以跳高了");
}
});
}
}