学习笔记:
def:在一个类内定义一个类。
public class out{ public class inner{ } }
内部类可以直接访问外部类的成员(包括私有),外部类要想访问内部类们必须创建对象。
1.2成员内部类
成员内部类:在外部类中有一个内部类
不能直接创建里面类的对象。
格式:外部类类名。内部类名 对象名 = 外部类对象。内部类对象 (针对内部类是public的)
public class out{ private int num=10; public class inner{ public void show(){ sout("num") } } }
在外部类的方法中创建内部类的对象,调用内部类里面的方法。
再测试类中直接创建外部类,调用外部类的方法,外部类的方法会调用内部类的方法。
1.3 局部内部类:
局部内部类:再外部类的方法中有一个内部类
public class out{ private int num=10; public void show(){ class inner{ public void show(){ sout("num") } } } }
调用:在外部类的方法中创建对象,在调用内部类的方法,是间接调用。
局部内部类可以直接访问外部类的成员,也可以访问方法内的局部变量。
1.4匿名内部类:
匿名内部类:继承了该类的或者实现了接口的子类匿名对象。在方法中有一个类。
前提存在一个类或者接口,可具体可抽象。
格式:new 类名或者接口名(){ 重写方法 ;}; 。show()别忘了分号
他是一个对象,可以直接在分号后面调用方法。