一、内部类
在类中定义的类,叫内部类,内部类也是一个类的成员
public class Outer {
//内部类
class Inner{
}
}
内部类是为外部类提供服务的一个类,内部类中可以直接调用外部类的成员
在外部类中创建 内部类的对象,直接使用内部类就可以了
public class Outer {
//内部类
class Inner{
}
public void method() {
Inner inner = new Inner(); //创建内部类对象
}
}
在其他类中 创建某个类的内部类。
public class Outer {
//内部类
class Inner{
private String name = "InnerName";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public void method() {
Inner inner = new Inner();
}
}
//调用Inner对象的 name属性
Outer outer = new Outer();
Inner inner = outer.new Inner();
System.out.println(inner.getName());
调用静态内部类的对象属性:
public class Outer {
//内部类
static class Inner{
private String name = "InnerName";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
public static void main(String[] args) {
//调用Inner对象的 name属性
Inner inner = new Outer.Inner();
System.out.println(inner.getName());
}
二、匿名内部类
public class Animal {
public void eat() {
System.out.println("Animal eat");
}
public static void main(String[] args) {
//定义一个子类继承Animal重写 eat方法 ,创建出这个子类的对象 (这个对象只创建一次)
//省去了单独定义子类
Animal a = new Animal() { //创建子类的对象
@Override //重写eat方法
public void eat() {
System.out.println("子类 eat");
}
}; //注意分号!
a.eat(); //调用子类对象a的eat方法
}
}
定义了一个类,这个类只用了一次(创建一次这个类的对象),没有必要单独定义一个类,写成匿名内部类的方式 创建对象
本文深入解析Java中的内部类和匿名内部类,包括它们的定义、使用场景,以及如何创建和调用。通过实例演示了如何在外部类创建内部类对象,并介绍了静态内部类和匿名内部类的应用。
794

被折叠的 条评论
为什么被折叠?



