Java面向对象11——匿名内部类知识点总结

简介: Java面向对象11——匿名内部类知识点总结

一、前言


在前面介绍了一些有关于内部类的知识点后,本文将介绍内部类中最重要的知识点:匿名内部类


二、概述


  • 匿名内部类 :是内部类的简化写法
  • 包含内容:继承\实现;方法; 创建对象


三、格式


new 类名或接口名(){
  public void show(){
  ···
  }
};


四、实例


1.代码及操作


2f3ee36d9e0047ee87601ee4389d2af1.png

package newTest2;
public interface swim {
    public abstract void swim();
}
package newTest2;
public class test1 {
    public static void main(String[] args) {
        new swim(){
            @Override
            public void swim() {
                System.out.println("自由泳");
            }
        }.swim();
    }
}


2.测试代码


5627eab372b446bfb169d333016f2416.png


五、 匿名内部类的特点


  • 定义一个没有名字的内部类
  • 这个类实现了父类,或者父类接口
  • 匿名内部类会创建这个没有名字的类的对象


六、应用实例


通常在方法的形式参数是接口或者抽象类时,也可以将匿名内部类作为参数传递


interface Swim {
    public abstract void swimming();
}
public class test {
    public static void main(String[] args) {
        // 普通方式传入对象
        // 创建实现类对象
        Student s = new Student();
        goSwimming(s);
        // 匿名内部类使用场景:作为方法参数传递
        Swim s3 = new Swim() {
            @Override
            public void swimming() {
                System.out.println("蝶泳...");
            }
        };
        // 传入匿名内部类
        goSwimming(s3);
        // 完美方案: 一步到位
        goSwimming(new Swim() {
            public void swimming() {
                System.out.println("大学生, 蛙泳...");
            }
        });
        goSwimming(new Swim() {
            public void swimming() {
                System.out.println("小学生, 自由泳...");
            }
        });
    }
    // 定义一个方法,模拟请一些人去游泳
    public static void goSwimming(Swim s) {
        s.swimming();
    }
}


七、结语


匿名内部类的知识点很重要,如果想要运用在实际项目中还需要多加练习,如果有任何的问题欢迎留言评论

相关文章
|
1月前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
1月前
|
存储 Java 数据处理
Java基础—笔记—面向对象篇
该内容是关于面向对象编程的介绍,包括类(用于定义数据和处理方法)、对象(通过类创建,存储和处理数据)的创建和使用,`this`关键字(代表调用方法的对象,用于区分成员变量和局部变量),成员变量与局部变量的区别(定义位置、初始化值、内存区域、作用域和生命周期),构造器(无返回值、与类名相同的特殊方法,用于对象创建和初始化),以及封装的概念(数据隐藏和暴露控制)和实现步骤(私有化成员变量,提供公共的setter和getter,以及构造器)。
17 0
|
8天前
|
存储 安全 Java
Java面向对象最新超详细总结版!
Java面向对象最新超详细总结版!
27 7
Java面向对象最新超详细总结版!
|
5天前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
17 3
|
5天前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
16 2
|
15天前
|
存储 Java 开发工具
【Java探索之旅】用面向对象的思维构建程序世界
【Java探索之旅】用面向对象的思维构建程序世界
11 0
|
15天前
|
Java
java使用面向对象实现图书管理系统
java使用面向对象实现图书管理系统
|
16天前
|
Java
Java语言---面向对象的三大特征之继承
Java语言---面向对象的三大特征之继承
|
16天前
|
机器学习/深度学习 Java Python
Java面向对象知识体系---基础版
Java面向对象知识体系---基础版
|
20天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类