20180407 java java面向对象-内部类概述
内部类:定义在类结构中的另外一个类。
eg:
public class Out//这个就叫做外部类
{
public class In//这个就是内部类
{
}
}
外部类也叫做宿主类
内部类也叫做嵌套类
为什么使用内部类:
(1)增强封装,将内部类隐藏在外部类之中,不许其他类访问该类(这个特点使用范围最广);
(2)内部类能提高代码的可读性和可维护性,把小型类嵌入到外部类中,结构上代码更接近。
(3)内部类可以直接访问外部类的成员(方法和变量),外部类不能直接访问内部类的成员。
可以把内部类 看成 是外部类里的 与方法和变量同级的东西。
所以类中可以定义的成员有:
字段
方法
内部类
内部类在双向链表中的应用:
//双向链表
public class LinkList
{
//第一个节点
private Node first;
//最后一个节点
private Node last;
//节点类型
class Node
{
private Node pre;
private Node next;
private Object element;
}
}
内部类根据使用不同的修饰符或被定义的位置可分为4种:
(1)实例内部类:内部类没有使用static修饰;
(2)静态内部类:内部类使用static修饰;
(3)局部内部类:在方法中定义的内部类;
(4)匿名内部类:是局部内部类的一种特殊情况,这种类没有起名称(使用范围最广)。