首页 > 编程知识 正文

Java类中类如何调用

时间:2023-11-20 12:26:17 阅读:293470 作者:ICLI

本文将从以下几个方面来详细介绍Java类中类的调用。

一、内部类的定义与使用

Java中可以定义内部类,也就是在类里面定义类。内部类分为静态内部类和非静态内部类。通过内部类可以实现类信息的隐藏,同时也可以加强封装性。


public class OuterClass{
    private String outerString;
    private static int outerInt;

    public void outerMethod(){
        InnerClass innerClass = new InnerClass();
        innerClass.innerMethod(); // 内部类方法的调用
    }

    public static void outerStaticMethod(){
        StaticInnerClass staticInnerClass = new StaticInnerClass();
        staticInnerClass.staticInnerMethod(); // 静态内部类方法的调用
    }

    public class InnerClass{
        private String innerString;

        public void innerMethod(){
            outerString = "hello"; // 外部类成员变量的访问
            outerInt = 10; // 外部类静态成员变量的访问
        }
    }

    public static class StaticInnerClass{
        public void staticInnerMethod(){
            outerInt = 20; // 外部类静态成员变量的访问
        }
    }
}

二、成员内部类的实例化

成员内部类的实例化需要先实例化外部类,再通过外部类实例来实例化内部类。


OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();

三、局部内部类的定义与使用

局部内部类是在代码块内部定义的类,如方法中定义的类,仅在定义的代码块内有效。需要注意的是,局部内部类只能使用final修饰的局部变量。


public class OuterClass{
    private String outerString;

    public void outerMethod(){
        final int num = 10; // final修饰的局部变量
        class LocalInnerClass{
            public void localInnerMethod(){
                outerString = "hello";
                System.out.println("num的值是" + num);
            }
        }

        LocalInnerClass localInnerClass = new LocalInnerClass();
        localInnerClass.localInnerMethod(); // 局部内部类方法的调用
    }
}

四、匿名内部类的定义与使用

匿名内部类是一种没有名字的内部类,一般在定义的同时就创建该类的实例。匿名内部类使用的场景很多,例如Listener接口、Runnable接口等。


public class OuterClass{
    public void outerMethod(){
        new Thread(new Runnable(){
            @Override
            public void run(){
                System.out.println("匿名内部类的实现");
            }
        }).start(); // 匿名内部类的实例化与调用
    }
}

五、总结

Java类中类的调用包括内部类和局部内部类、匿名内部类等几种形式,它们都在一定程度上实现了类信息的隐藏和封装性的加强。在实际开发中,需要根据具体需求选择相应的内部类形式进行使用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。