本文将从以下几个方面详细讲述内部类
1.内部类的定义与使用
- 内部类的基本概念
- 内部类为什么存在
- 内部类与外部类的关系
2.内部类
- 内部类分类
- 在外部类外部创建内部类
- 在外部类内部创建内部类
3.内部类详解
- 成员内部类
- 静态内部类
- 方法内部类
- 匿名内部类
正文
1. 内部类的定义与使用
1.1 基本概念:所谓内部类就是在一个类的内部嵌套其他类结构
我们通过一个例子来看看简单内部类的定义
// 定义一个外部类
class Outter{
private String title = "i am class Outters title";
//*****************************************
// 在外部类的内部定义一个内部类
class Inner{
// 在内部类中定义一个普通方法
public void print(){
// 调用外部类的private属性
System.out.println(title);
}
}
//*****************************************
// 在外部类定义一个方法,负责产生内部类对象以及调用内部类的print方法
public void fun(){
Inner inner = new Inner(); //内部类对象
inner.print(); // 内部类提供的print方法
}
}
public class Test {
public static void main(String[] args) {
Outter outter = new Outter(); //外部类的对象
outter.fun(); //外部类的方法
}
}
看完上述代码,我们的第一感受就是麻烦!确实,引入内部类让程序的结构变得复杂,但是内部类也有它的好处,就是我们可以方便的操作外部类的私有访问。
做个练习,我们在不修改主代码的情况下,对上述代码修改,使其也能达到上面的效果
class Outter{
private String title = "i am class Outters title";
public String getTitle(){
return title;
}
public void fun(){
Inner inner = new Inner(this);
inner.print();
}
}
class Inner{
private Outter out;
public Inner(Outter out){
this.out = out;
}
public void fun(){
System.outy.