zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    二维动态规划(2)
    细节是否真的打败爱情,十年后你还会爱我吗?
    C++的四种cast操作符的区别类型转换
    纯虚函数
    二维动态规划
    1,2,...n n个数m个丢失,找出丢失的数
    虚拟内存管理技术
    C++ 面试题总结
    【转】图的邻接链表 adjacent list of graph
    CIOCPServer的数据结构定义及内存池方案
  • 原文地址:https://www.cnblogs.com/tianyuchen/p/6673520.html
Copyright © 2011-2022 走看看