• AJPFX关于Java内部类及其实例化


    public class Outer {
        private int size;
        public class Inner {
            private int counter = 10;
            public void doStuff() {
                size++;
            }
        }
        public static void main(String args[]) {
            Outer outer = new Outer();
            Inner inner = outer.new Inner();
            inner.doStuff();
            System.out.println(outer.size);
            System.out.println(inner.counter);
            // 编译错误,外部类不能访问内部类的变量
            System.out.println(counter);
        }
    }
    这段代码定义了一个外部类 Outer,它包含了一个内部类 Inner。将错误语句注释掉,编译,会生成两个 .class 文件:Outer.class 和 Outer$Inner.class。也就是说,内部类会被编译成独立的字节码文件。

    内部类是一种编译器现象,与虚拟机无关。编译器将会把内部类翻译成用 $ 符号分隔外部类名与内部类名的常规类文件,而虚拟机则对此一无所知。

    注意:必须先有外部类的对象才能生成内部类的对象,因为内部类需要访问外部类中的成员变量,成员变量必须实例化才有意义。

  • 相关阅读:
    linux挂载windows共享文件夹
    Cython
    python并行编程
    数据库学习----MySQL 存储引擎
    数据库学习----MySQL 日志
    数据库学习----从文件l数据到数据库
    Golang 学习 ---- 编译打包
    数字转换成千字符
    el-select选择框宽度与输入框相同
    git常用命令总结
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10891249.html
Copyright © 2020-2023  润新知