一、内部类
类的内部依然可以定义类,内部类指的是在A类的里面再写一个B类,此时,B叫做A的内部类。并且内部类的方法中可以去调用外部类的私有属性,对于内部类的实例化,使用外部类去实例化。首先实例化外部类的对象,outer a=new outer(); ,然后使用外部类去实例化内部类对象,outer.inner b=a.new inner();。
public class outer {
String name="weiwei";
private int age;
private int id=6545;
public void out(String name){
System.out.println(this.name);
}
//内部类可以用public修饰
public class inner{
public void in(){
System.out.println(age);
}
//可以调用外部类的私有属性
public void getID(){
System.out.println(id);
}
public void getAge(){
System.out.println(age);
}
}
}
二、局部内部类
局部,就是写在方法里面的东西,写在方法中的变量叫做局部变量,写在方法中的类就叫做局部内部类。
一个Java文件中只能有一个public class类,但是可以有多个class类
class A{
public void test(){
//在方法的内部定义一个类
class B{
public void test1(){
}
}
}
三、匿名内部类
匿名内部类在声明类时,没有区别,在对象实例化中有区别,一般情况使用new关键字实例化后会保存到变量中,匿名内部类没有名字的初始化,不用将实例保存到变量中。
一般情况下的实例化: 类 变量=new 类 ();
变量.方法();
匿名内部类 new 类().方法();