当前位置: 代码迷 >> 综合 >> 第2课第7节_Java面向对象编程_内部类_P
  详细解决方案

第2课第7节_Java面向对象编程_内部类_P

热度:58   发布时间:2023-10-15 23:26:40.0

在一个类的内部定义一个类即为内部类

(1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。
(2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 。
(3)、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。

内部类最大的好处就是他可以自由的访问外部类的成员变量,无论是否是private的 ,下面以程序例子来进行说明它的好处。

class Outer {private int a = 10;/* 为什么要使用内部类,它可以访问外部类的私有属性 */class Inner {public void printInfo(){System.out.println("a = "+a);/* 直接访问a这个私有成员 */}}
}public class InnerDemo {public static void main(String args[]) {/* 内部类定义 */Outer o = new Outer();//先实例化一个外部类对象,不先实例外部类,内部类就使用不了其中的成员变量Outer.Inner i = o.new Inner();//再实例化一个内部类对象i.printInfo();//然后调用}
}

那么这里可能会觉得麻烦,需要先实例一个外部类,再去实例化一个内部类,能不能直接实例化内部类呢,可以的,在内部类前加上关键字 static 即可,但它有限制