【一步一步了解Java】:对这个系列的总结以及对缺漏内部类知识的补充
在Java中,内部类是一个非常有用的特性,它允许我们在另一个类的内部定义一个类。内部类可以访问外部类的所有成员,包括私有成员。
内部类可以分为四种:
- 静态内部类
- 成员内部类
- 局部内部类
- 匿名内部类
下面是一个简单的内部类示例,使用成员内部类:
public class OuterClass {
private int outerVariable = 10;
public class InnerClass {
private int innerVariable = 20;
public void display() {
int sum = outerVariable + innerVariable;
System.out.println("The sum is: " + sum);
}
}
public static void main(String[] args) {
OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
innerObject.display();
}
}
在这个例子中,我们创建了一个名为OuterClass
的外部类,它有一个成员内部类InnerClass
。InnerClass
可以访问OuterClass
的私有变量outerVariable
。在main
方法中,我们创建了OuterClass
的一个实例,并通过这个实例创建了InnerClass
的一个实例,然后调用display
方法。
对于原代码中没有提到的匿名内部类和局部内部类,这里不再赘述,因为它们的使用场景相对较少,容易与成员内部类混淆。
对于原代码中没有提到的静态内部类,我们可以这样使用:
public class OuterClass {
private static int outerVariable = 10;
public static class StaticInnerClass {
public void display() {
System.out.println("The outer variable is: " + outerVariable);
}
}
public static void main(String[] args) {
OuterClass.StaticInnerClass innerObject = new OuterClass.StaticInnerClass();
innerObject.display();
}
}
在这个例子中,StaticInnerClass
是一个静态内部类。它不能访问外部类的非静态成员,因为它没有外部类的实例引用。在main
方法中,我们直接通过外部类来创建静态内部类的实例,并调用其方法。
评论已关闭