Java内部类分为4个部分进行阐述,分别为概览、成员内部类、局部内部类和匿名内部类。


在本文中是Java内部类的概览,主要讲述内部类的概念、内部类的好处、内部类的.class文件名、内部类的类别和内部类的应用场景。



1、内部类的概念


    一个类定义在另外一个类的内部,那么该类就称作为内部类。

class OuterClass
{
	class InnterClass
	{
	}
}

在上述代码中,OutterClass是外部类,而InnerClass是内部类。


2、内部类的好处


    “内部类”可以直接访问“外部类”的所有成员

class OuterClass
{
	private int x = 5;
	class InnterClass
	{
		void print()
		{
			System.out.println("我可以访问OuterClass的私有成员变量x,它的值是" + x);
		}
	}
}

在OuterClass中定义了x变量,它是private(私有类型的),但是由于InnerClass是内部类,所以在print方法中可以对x进行访问。



3、内部类的.class文件名


    内部类的.class文件名的命名为:外部类$内部类。这样命名的好处是:便于区分该class文件是属于哪个外部类的。


package com.rk.innerclass;

class OuterClass
{
	private int x = 5;
	class InnterClass
	{
		void print()
		{
			System.out.println("我可以访问OuterClass的私有成员变量x,它的值是" + x);
		}
	}
}

public class MemberInnerClass
{
	public static void main(String[] args)
	{
		OuterClass outter = new OuterClass();
		OuterClass.InnterClass inner = outter.new InnterClass();
		inner.print();
	}
}

将上述代码进行编译,可以得到三个文件,其中内部类的.class文件名为“OuterClass$InnterClass.class”

wKioL1cPVgehiivvAAAIeRQA1vg928.png




4、内部类的类别


    Java内部类的类别分为三种:成员内部类、局部内部类和匿名内部类。



5、内部类的应用场景


我们在描述A事物的时候,发现描述的A事物内部还存在另外一个比较复杂的事物B时候,而且这个比较复杂事物B还需要访问A事物的属性等数据,那么这时候我们就可以使用内部类描述B事物。


6、思维导图

wKioL1cPVx6w3WgfAAC1lMLBRUI026.png