1、创建内部类
public class ClassA{
class ClassB{
}
public static void main(String[] args){
ClassB c = new ClassB();
}
}
2、链接到外部类
public class ClassA{
private int i = 0;
private Object[] items;
class ClassB{
public boolean end(){return i == items.length()}
}
public static void main(String[] args){
ClassB c = new ClassB();
c.end();
}
}
虽然 i 和 items都是外部类ClassA的成员,但是内部类ClassB也可以访问。
3、内部类访问外部类
.this 可以返回当前外部类对象的引用
public class ClassA{
private int i = 0;
private Object[] items;
class ClassB{
public ClassA outer(){
return ClassA.this
}
public boolean end(){return i == items.length()}
}
public static void main(String[] args){
ClassB c = new ClassB();
c.end();
}
}
4、内部类访问外部类
.new 创建内部类对象
public class ClassA{
private int i = 0;
private Object[] items;
class ClassB{
public ClassA outer(){
return ClassA.this
}
public boolean end(){return i == items.length()}
}
public static void main(String[] args){
ClassA a = new ClassA();
ClassA.ClassB b = a.new ClassB();
}
}
创建内部类对象不能直接创建,需要先创建个外部类对象,然后外部类对象后面加.new 再加内部类构造器才可以创建。(静态内部类不需要)
5、局部内部类
(1)方法的作用域内创建一个完整的类,这被称为局部内部类。
6、匿名内部类
public class ClassA{
public ClassB classB(){
return new ClassB(){
private int i = 0;
public int value(){
return i;
}
};
}
public void main(String[] args){
ClassA a = new ClassA();
}
}