java内部类、静态内部类

1)首先,用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。所以没有必要专门用一个Java文件存放这个类。

2)静态都是用来修饰类的内部成员的。比如静态方法,静态成员变量,静态常量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。

这样静态内部类就可以理解了,因为这个类没有必要单独存放一个文件,它一般来说只被所在外部类使用。并且它可以直接被用 外部类名+内部类名 获得。

以下举例说明怎么使用:

Student类有个叫School的内部类(非静态)

Student stu = new Student();

stu.School sch = new stu.School();

sch就是School的一个对象。

假如School是内部静态类:

Student.School sch = new Student.School();


需要注意的地方:

内部类就像一个实例成员一样存在于外部类中。

内部类可以访问外部类的所有成员就想访问自己的成员一样没有限制。

内部类中的this指的是内部类的实例对象本身,如果要用外部类的实例对象就可以用类名.this的方式获得。

内部类对象中不能有静态成员,原因很简单,内部类的实例对象是外部类实例对象的一个成员。

你可能感兴趣的:(java内部类、静态内部类)