1.基本概念
在一个类的内部定义另外一个类,是不是很直接明了
2. 最常使用方式
就像它的名字一样,内部类,就在内部使用好了,的确也有这样的用途
public class InnerTest {
//我们内部类定义的所在地
class InnerClass {
private String name;
InnerClass(String name){
this.name = name;
}
String getName(){
return name;
}
}
void printInnerName(){
//在外部类的新建使用的地方
InnerClass innerClass = new InnerClass("inner class");
String innerName = innerClass.getName();
System.out.println("inner name:" + innerName);
}
public static void main(String[] args) {
InnerTest test = new InnerTest();
test.printInnerName();
}
}
//inner name:inner class
3. 在其他地方需要使用到内部类
InnerTest.InnerClass innerClass = test.new InnerClass("client use inner name");
System.out.println("inner class name:" + innerClass.getName());
//inner class name:client use inner name
4. 增强外部类功能,可以实现外部接口
- 定义一个外部接口
interface OuterInterface {
void a();
}
- 在外部类内部接口实现类
private class OuterInterfaceImpl implements OuterInterface {
@Override
public void a() {
System.out.println("a()");
}
}
public OuterInterface getOutInterface(){
return new OuterInterfaceImpl();
}
- 外部方法调用
OuterInterface outInterface = test.getOutInterface();
outInterface.a();
//a()
4. 内部类中引用外部类的对象
OuterClass.this
这里的OuterClass即为外部类的类名,这样我们可以引用外部类的对象。
网友评论