内部类
内部类就是在一个类的内部再定义一个类,比如在A类的中定义一个B类,那么B类相对于A类来说就是内部类,而A类相对于B类就是外部类
- 成员内部类
成员内部类作为外部类的一个成员存在,内部类可以访问外部类的私有变量
package OuterAndInner;
public class Outer {
private static Object Outer;
private int age=1;
public void outer(){
System.out.println("It is Outer");
}
public class Inner{
public void inner(){
System.out.println("It is Inner");
}
}
public static void main(String[] args) {
Outer outer=new Outer();
outer.outer();
//Inner inner=new Inner();错误写法
Outer.Inner inner=Outer.new Inner();
inner.inner();
}
}
- 静态内部类
与上面的类似,内部类前面加上static修饰。修饰后不能再获取内部变量。因为先实例化static,此时私有变量还未生成。若私有变量也加上static,则可以继续获取。
- 局部内部类
写在类内部的方法里
public class Outer{
public void method(){
class Inner {
public void in(){
}
}
}
}
- 匿名内部类
public class Test{
public static void main(String[] args){
new Apple().eat();//没有命名直接调用
}
}
class Apple{
public void eat(){
System.out.println("haha");
}
}