java内部类

关于内部类的一些规则

静态内部类
静态方法:外部类的静态成员变量、自己的静态成员变量
非静态方法:外部类的静态成员变量、自己的静态成员变量、自己的非静态成员变量

非静态内部类
无静态方法
非静态方法:外部类的静态成员变量、外部类的非静态成员变量、自己的非静态成员变量

/* 下面程序演示如何在java中创建静态内部类和非静态内部类 */
public class OuterClass {
    private static String msg1 = "name";
    private String msg2 = "name";

    // 静态内部类
    public static class NestedStaticClass {
        private static String msg3 = "name";
        private String msg4 = "name";
        public void printMessage() {
            System.out.println(msg1);
        //    System.out.println(msg2);  //不可以访问外部非静态成员变量
            System.out.println(msg3);
            System.out.println(msg4);
        }
        public static void printMessage2() {
            System.out.println(msg1);
            System.out.println(msg3);
        }
    }

    // 非静态内部类
    public class InnerClass {
    //    private static String msg5 = "name"; //不可以声明静态成员变量和静态方法
        
        private String msg6 = "name";
        
        public void display() {
            System.out.println(msg1);
            System.out.println(msg2);
            System.out.println(msg6);
        }
    }
    
}

class Main {
    // 怎么创建静态内部类和非静态内部类的实例
    public static void main(String args[]) {
        // 创建静态内部类的实例
        OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
        // 创建静态内部类的非静态方法
        printer.printMessage();
        // 为了创建非静态内部类,我们需要外部类的实例
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        // 调用非静态内部类的非静态方法
        inner.display();
        // 我们也可以结合以上步骤,一步创建的内部类实例
        OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();
        // 同样我们现在可以调用内部类方法
        innerObject.display();
    }
}

 

转载于:https://www.cnblogs.com/tianyuchen/p/6673520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值