列据多个例子详细并生动形象说明java中内部类是什么
在Java中,内部类是指定义在其他类内部的类。它们与外部类有着紧密的关系,可以访问外部类的私有成员,并且可以被外部类访问。内部类可以分为以下几种类型:成员内部类、局部内部类、匿名内部类和静态内部类。
-
成员内部类: 成员内部类是定义在外部类的成员位置上的类,它与外部类的成员拥有相同的访问权限。下面是一个例子:
public class OuterClass { private int x = 10; public class InnerClass { public void display() { System.out.println("x = " + x); } } }在这个例子中,OuterClass是外部类,InnerClass是成员内部类。InnerClass可以访问外部类的私有成员x,通过创建OuterClass的对象来访问InnerClass。
-
局部内部类: 局部内部类是定义在方法内部的类,它只在该方法内部可见。下面是一个例子:
public class OuterClass { public void display() { class LocalInnerClass { public void print() { System.out.println("Local inner class"); } } LocalInnerClass localInner = new LocalInnerClass(); localInner.print(); } }在这个例子中,LocalInnerClass是局部内部类,它只在display()方法内部可见。通过创建display()方法的对象来访问LocalInnerClass。
-
匿名内部类: 匿名内部类是没有类名的内部类,它通常用于创建实现某个接口或继承某个类的对象。下面是一个例子:
public class OuterClass { public void display() { Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Anonymous inner class"); } }; Thread thread = new Thread(runnable); thread.start(); } }在这个例子中,我们创建了一个实现Runnable接口的匿名内部类,并通过创建Thread对象来启动线程。
-
静态内部类: 静态内部类是定义在外部类内部的静态类,它与外部类的其他静态成员一样,可以直接通过外部类名访问。下面是一个例子:
public class OuterClass { private static int x = 10; public static class StaticInnerClass { public void display() { System.out.println("x = " + x); } } }在这个例子中,StaticInnerClass是静态内部类,它可以直接访问外部类的静态成员x,通过OuterClass.StaticInnerClass来访问
原文地址: http://www.cveoy.top/t/topic/ifW8 著作权归作者所有。请勿转载和采集!