将一个类的定义放在另一个类的内部就是内部类
1.创建一个内部类Apple
public class test1 {
int i;
class Apple{
void play(){
System.out.println(i);
}
public test1 Inner(){
return test1.this;
}
}
public static void main(String[] args) {
test1 te=new test1();
test1.Apple apple=te.new Apple();
apple.play();
}
}
2.链接到外部类
内部类可以直接使用外部类的成员变量等,例如调用play输出i
3.使用.this与.new
如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this. 类似 test1.this。要创建某个内部类对象,必须在new表达式中提供对其他外部类对象的引用,需要用.new
4.内部类与向上转型
5.匿名类
abstract class Intrument {public abstract void play();
}
public class test1
{
public static Intrument get(final int i)
{
return new Intrument(){
public void play(){
//String i;
System.out.println("我是匿名类"+i);
}
};
}
public static void main(String[] args)
{
Intrument base=get(3);
base.play();
}
}
在匿名类内部使用的变量必须的final类型的,new Intrument(){};这个就可以看着是一个匿名类。