Java内部类是一种非常有用的特性,它允许在另一个类的内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员。掌握内部类,可以帮助我们更好地组织代码,提高代码的可读性和可维护性。本文将详细介绍Java内部类的四种创建方式,并通过实例教学,帮助小白快速学会使用内部类。
一、内部类的四种创建方式
- 成员内部类(Non-static inner class)
成员内部类是定义在另一个类的非静态成员内部的一个类。它可以访问外部类的所有成员,包括私有成员。
public class OuterClass {
private int outerField = 1;
class InnerClass {
public void display() {
System.out.println("OuterField: " + outerField);
}
}
public void method() {
InnerClass inner = new InnerClass();
inner.display();
}
}
- 静态内部类(Static inner class)
静态内部类是定义在外部类的静态成员内部的一个类。它可以访问外部类的静态成员,但不能访问外部类的非静态成员。
public class OuterClass {
private int outerField = 1;
static class InnerClass {
public void display() {
System.out.println("OuterField: " + outerField);
}
}
public void method() {
InnerClass inner = new InnerClass();
inner.display();
}
}
- 局部内部类(Local inner class)
局部内部类是定义在方法或构造方法内部的一个类。它可以访问外部类的所有成员,包括私有成员。
public class OuterClass {
private int outerField = 1;
public void method() {
class InnerClass {
public void display() {
System.out.println("OuterField: " + outerField);
}
}
InnerClass inner = new InnerClass();
inner.display();
}
}
- 匿名内部类(Anonymous inner class)
匿名内部类是在创建对象的同时,直接实例化一个内部类。它通常用于实现接口或继承类。
public class OuterClass {
public void method() {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello, World!");
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
二、实例教学
以下是一个使用内部类的实例,演示了如何创建一个计算器类,其中包含加法、减法、乘法和除法方法。
public class Calculator {
private int result;
public void add(int num) {
result += num;
}
public void subtract(int num) {
result -= num;
}
public void multiply(int num) {
result *= num;
}
public void divide(int num) {
if (num != 0) {
result /= num;
} else {
System.out.println("Division by zero is not allowed.");
}
}
public void reset() {
result = 0;
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.add(10);
calculator.subtract(5);
calculator.multiply(2);
calculator.divide(4);
System.out.println("Result: " + calculator.result);
}
}
在这个例子中,Calculator 类使用了成员内部类来实现一个简单的计算器。通过这种方式,我们可以将计算器的逻辑与外部类分离,提高代码的可读性和可维护性。
通过本文的介绍,相信你已经掌握了Java内部类的四种创建方式。在实际开发中,合理地使用内部类,可以帮助我们更好地组织代码,提高代码的质量。希望这篇文章能帮助你快速学会使用Java内部类!
