前言
上一篇我们共同学习了接口的定义与实现,本篇我们将学习java的内部类。
一、内部类的概念
内部类(Inner Class),是 Java 中对类的一种定义方式,是嵌套类的一个分类,即非静态嵌套类(Non-Static Nested Class)。内部类(非静态嵌套类)分为成员内部类、局部内部类和匿名内部类三种。
二、代码示例
1.成员内部类
代码如下(示例):
1.Outer类
public class Outer {
private int id;
public void out(){
System.out.println("是外部类的方法");
}
public class Inner{
public void in(){
System.out.println("是内部类的方法");
}
//获得外部类的私有属性
public void getID(){
System.out.println(id);
}
}
}
//一个Java类中可以有多个类,但是只能有一个public class类
class A{
}
2.Application类
public class Application {
public static void main(String[] args) {
Outer outer = new Outer();
//通过外部类来实例化内部类
Outer.Inner inner = outer.new Inner();
outer.out();
inner.in();
inner.getID();
}
}
运行结果:
2.局部内部类
代码如下(示例):
1.Part类
//局部内部类
public class Part {
public void outer(){
System.out.println("是外部类的方法");
}
public void method(){
class Inner{
public void in(){
System.out.println("是内部类的方法");
}
}
Inner i = new Inner();
i.in();
}
}
2.Application类
public class Application {
public static void main(String[] args) {
Part part = new Part();
part.outer();
//通过外部类来实例化内部类
part.method();
}
}
运行结果:
3.匿名内部类
代码如下(示例):
1.Anonymous类
//匿名内部类
public class Anonymous {
public static void main(String[] args) {
//没有名字初始化类,不用将实例保存在变量中
new Apple().eat();
}
}
class Apple{
public void eat(){
System.out.println("吃");
}
}
运行结果:
总结
- 内部类的实例化需要通过外部类。
- 可以通过内部类来获取外部类的私有属性。