内部类的访问规则:
(1)内部类可以直接访问外部类的成员,包括私有;之所以可以直接访问外部类中的成员是因为内部类持有一个外部类的引用(格式:外部类.this.)。
(2)外部类要访问内部类必须建立内部类对象。
面试可能用:
(1)
(2)
访问格式:
(1)
(2)
面试可能用:
在外部其它类中如何直接访问静态内部类中的非静态成员呢?
new
在外部其它类中如何直接访问静态内部类中的静态成员呢?
Outer.Inner().function();//function()
注意:当内部类中定义了静态成员,该内部类必须是静态的。
匿名内部类:
1、匿名内部类其实就是内部类的简写形式。
2、定义匿名内部类的前提:内部类必须是继承一个类或实现接口。
3、匿名内部类的格式:new父类或者接口(){定义子类的内容}
4、其实匿名内部类就是一个匿名子对象,而且这个对象有点胖;可以理解为带有内容的对象。
匿名内部类总定义的方法,最好不要超过3个。
匿名内部类练习:
interface Inter
{
}
class Test
{
}
class InnerClassTest
{
}