内部类和外部类是Java中两种类的嵌套关系,内部类是定义在另一个类中的类,而外部类是独立存在的类。
内部类和外部类的区别:
1. 内部类可以直接访问外部类的成员变量和方法,而外部类不能直接访问内部类的成员变量和方法;
2.内部类可以是静态的也可以是非静态的,而外部类只能是非静态的;
3.内部类可以访问外部类的私有成员,而外部类不能访问内部类的私有成员;
内部类的应用场景
1. 逻辑上属于外部类的一部分,但不希望被外部类的其他部分访问;
2.需要实现某个接口或继承某个类,但不希望被其它类访问;
示例:
public class OuterClass {
private int outerVar;
public void outerMethod() {
InnerClass inner = new InnerClass();
inner.innerMethod();
}
public class InnerClass {
private int innerVar;
public void innerMethod() {
outerVar = 10;
outerMethod();
}
}
}
总结:
封装性:内部类可以隐藏在外部类中,实现封装和隐藏;
回调函数:内部类可以用于实现接口或抽象类,用于回调函数的实现;
事件处理:内部类可以用于事件处理,例如Swing编程中的事件监听器。