内部类写法
时间: 2023-08-07 20:05:39 浏览: 115
内部类是指在一个类的内部定义的另一个类。内部类可以访问外部类的私有成员,而不需要使用访问器或者公共方法。
Java中有四种类型的内部类:成员内部类、局部内部类、匿名内部类和静态内部类。下面分别介绍它们的写法。
1. 成员内部类
成员内部类是定义在外部类的成员位置上的类,它可以访问外部类的所有成员,包括私有成员。
```java
public class OuterClass {
private int outerField;
public class InnerClass {
private int innerField;
public void setOuterField(int value) {
outerField = value;
}
public void setInnerField(int value) {
innerField = value;
}
}
}
```
2. 局部内部类
局部内部类是定义在方法或代码块内部的类,它只能在定义它的方法或代码块中使用。
```java
public class OuterClass {
private int outerField;
public void method() {
int localVariable = 0;
class InnerClass {
private int innerField;
public void setOuterField(int value) {
outerField = value;
}
public void setInnerField(int value) {
innerField = value;
}
public void setLocalVariable(int value) {
localVariable = value; // 局部变量必须是 final 或 effectively final
}
}
InnerClass inner = new InnerClass();
inner.setOuterField(1);
inner.setInnerField(2);
inner.setLocalVariable(3);
}
}
```
3. 匿名内部类
匿名内部类是没有名字的内部类,它通常用来实现接口或继承某个类。
```java
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();
}
}
```
4. 静态内部类
静态内部类是定义在外部类内部的 static 类,它只能访问外部类的静态成员。
```java
public class OuterClass {
private static int outerStaticField;
public static class InnerClass {
private int innerField;
public void setOuterStaticField(int value) {
outerStaticField = value;
}
public void setInnerField(int value) {
innerField = value;
}
}
}
```
阅读全文