import 一般加上全路径,并且使用.*时只包含当前目录的所有类文件,不包括子目录。
2. 外部类只有public和default两种修饰,要么全局可访问,要么包内可访问。
3. 内部类可以有全部访问权限,因为它的概念就是一个成员变量,所以访问权限设置与一般的成员变量相同。
非静态内部类是外部类的一个成员变量,只跟外部类的实例有关。
静态内部类是独立于外部类存在的一个类,与外部类实例无关,可以通过外部类.内部类直接获取Class类型。
想要了解更多可以跟我一起讨论哦
1. 内部类能访问外围类的所有成员,包括私有成员。
当生成一个内部类对象时,此对象与制造它的外围类对象之间就有了一种联系,所以它能访问其外围类对象的所有成员,而不需要任何特殊的条件。如下面代码所示:
[java] view plain copy
class OutterClass {
private int i = 1
class InnerClass {
public void displayPrivate() {
System.out.println(i)
}
}
}
public class MainClass{
public static void main(String[] args) {
OutterClass outter = new OutterClass()
OutterClass.InnerClass inner = outter.new InnerClass()
inner.displayPrivate()
}
}
由上面的代码可以看出,内部类能够访问外部类的私有成员变量。在这段代码中,还需要注意的是
①生成内部类对象,必须要先有外围类对象,具体的做法请见代码;
②内部类能访问外围类的私有成员这一点,C++中的嵌套类是没有这个特性的。
2. 内部类与static
①内部类不能含有static方法;
②内部类不能含有static数据成员,除非是static final;
③内部类可以继承含有static成员的类。
3. 匿名内部类
匿名内部类,看起来非常奇怪。因为它太简洁了,但这也带来一个好处,用匿名内部类写出来的代码通常比较简洁啦!