成员内部类

大部分时候,类被定义成一个独立的程序单元,在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其它类内部的类就叫内部类。包含内部类的类也被称为外部类。成员内部类可以使用外部类的成员变量和成员方法, 不管用什么权限修饰,不管是private还是public都可以使用,因为,这是在内部类的内部使用。
内部类的作用:
1:内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其它类访问该类。
2:内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问,但是外部类不能访问内部类的内容。
3:匿名内部类适合用于创建仅需一次使用的类。
下面是一个内部类的例子:
class Outer { //外部类

class Inner {//内部类public void testInner() { System.out.println("内部类的成员方法"); }}public void testOuter() { System.out.println("外部类的成员方法"); }

}
在外部类中创建内部类对象,只需要在外部类中的成员函数中创建即可
class Outer { //外部类
class Inner {//内部类public void testInner() { System.out.println("内部类的成员方法"); }}public void testOuter() { System.out.println("外部类的成员方法"); } //在此添加一个创建内部类对象的方法 public void createInnnerClass() { Inner inner = new Inner(); inner.testInner(); }

}
在Outer类的外部创建Inner类的对象
格式如下:
外部类名.内部类名 内部类对象名 = new 外部类名().new 内部类名();
例如:
Outer.inner inner = new Outer().new Inner();
代码如下:
class Demo1 {
public static void main(String[] args) { Outer.Inner inner = new Outer().new Inner(); inner.testInner(); }

【成员内部类】}
如果内部类和外部类存在同名的成员变量,这里默认是就近原则,使用的是内部类的成员变量
如果想要使用外部类的成员变量的:
格式:
外部类名.this.同名成员变量;
外部类名.this.同名成员方法(参数列表);

    推荐阅读