在Java中,内部类是指定义在其他类内部的类。它们与外部类有着紧密的关系,可以访问外部类的私有成员,并且可以被外部类访问。内部类可以分为以下几种类型:成员内部类、局部内部类、匿名内部类和静态内部类。

  1. 成员内部类: 成员内部类是定义在外部类的成员位置上的类,它与外部类的成员拥有相同的访问权限。下面是一个例子:

    public class OuterClass {
        private int x = 10;
    
        public class InnerClass {
            public void display() {
                System.out.println("x = " + x);
            }
        }
    }
    

    在这个例子中,OuterClass是外部类,InnerClass是成员内部类。InnerClass可以访问外部类的私有成员x,通过创建OuterClass的对象来访问InnerClass。

  2. 局部内部类: 局部内部类是定义在方法内部的类,它只在该方法内部可见。下面是一个例子:

    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。

  3. 匿名内部类: 匿名内部类是没有类名的内部类,它通常用于创建实现某个接口或继承某个类的对象。下面是一个例子:

    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对象来启动线程。

  4. 静态内部类: 静态内部类是定义在外部类内部的静态类,它与外部类的其他静态成员一样,可以直接通过外部类名访问。下面是一个例子:

    public class OuterClass {
        private static int x = 10;
    
        public static class StaticInnerClass {
            public void display() {
                System.out.println("x = " + x);
            }
        }
    }
    

    在这个例子中,StaticInnerClass是静态内部类,它可以直接访问外部类的静态成员x,通过OuterClass.StaticInnerClass来访问

列据多个例子详细并生动形象说明java中内部类是什么

原文地址: http://www.cveoy.top/t/topic/ifW8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录