Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
Java中的内部类是一个非常强大的特性,它允许我们在另一个类的内部定义一个类。内部类可以访问外部类的所有成员,包括私有成员。这种关系是一种封装的体现,外部类负责管理内部类的生命周期。
内部类可以分为四种:
- 静态内部类(Static Nested Class)
- 成员内部类(Member Class)
- 局部内部类(Local Class)
- 匿名内部类(Anonymous Class)
下面我们来看看这四种内部类的具体使用方法和示例代码:
- 静态内部类:
静态内部类可以看作是外部类的一个静态成员,因此不需要外部类的实例即可创建内部类的实例。
public class Outer {
private static int i = 1;
public static class Inner {
public void print() {
System.out.println(i);
}
}
public static void main(String[] args) {
Outer.Inner inner = new Outer.Inner();
inner.print();
}
}
- 成员内部类:
成员内部类不能包含静态成员,但是它默认持有外部类的引用。
public class Outer {
private int i = 1;
public class Inner {
public void print() {
System.out.println(i);
}
}
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.print();
}
}
- 局部内部类:
局部内部类像局部变量一样,不能使用访问控制修饰符(public,private等),它只能在声明的块中使用。
public class Outer {
public void doSomething() {
class Inner {
public void print() {
System.out.println("Hello, World!");
}
}
Inner inner = new Inner();
inner.print();
}
}
- 匿名内部类:
匿名内部类是一种特殊的局部内部类,它没有类名,需要继承或实现一个已知的类或接口。
public class Outer {
public void doSomething(final String name) {
Runnable r = new Runnable() {
public void run() {
System.out.println("Hello, " + name);
}
};
Thread t = new Thread(r);
t.start();
}
}
以上就是Java内部类的基本概念和使用方法。
评论已关闭