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();
    }
}


七、结语


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

相关文章
|
9天前
|
安全 Java 编译器
揭秘JAVA深渊:那些让你头大的最晦涩知识点,从泛型迷思到并发陷阱,你敢挑战吗?
【8月更文挑战第22天】Java中的难点常隐藏在其高级特性中,如泛型与类型擦除、并发编程中的内存可见性及指令重排,以及反射与动态代理等。这些特性虽强大却也晦涩,要求开发者深入理解JVM运作机制及计算机底层细节。例如,泛型在编译时检查类型以增强安全性,但在运行时因类型擦除而丢失类型信息,可能导致类型安全问题。并发编程中,内存可见性和指令重排对同步机制提出更高要求,不当处理会导致数据不一致。反射与动态代理虽提供运行时行为定制能力,但也增加了复杂度和性能开销。掌握这些知识需深厚的技术底蕴和实践经验。
30 2
|
11天前
|
Java 数据处理 开发者
【Java基础面试十二】、说一说你对面向对象的理解
这篇文章阐述了面向对象是一种以类和对象为基础,通过封装、继承和多态等概念来模拟现实世界中的事物及其相互关系的程序设计方法,它强调以事物为中心进行思考和系统构造,与结构化程序设计相比,更符合人类的自然思维方式。
【Java基础面试十二】、说一说你对面向对象的理解
|
11天前
|
Java
【Java基础面试十三】、面向对象的三大特征是什么?
这篇文章介绍了面向对象程序设计的三大基本特征:封装、继承和多态,其中封装隐藏对象实现细节,继承实现软件复用,多态允许子类对象表现出不同的行为特征。
【Java基础面试十三】、面向对象的三大特征是什么?
|
7天前
|
Java 开发者 C++
|
10天前
|
存储 Java
Java面向对象面试题总结(上)
在Java中,重写(Override)与重载(Overload)是两个重要的概念,关联到方法的定义与调用。重写是指子类对继承自父类的方法进行新的实现,以便提供子类特有的行为,其关键在于方法签名一致但方法体不同。重载则允许在同一个类中定义多个同名方法,只要参数列表不同即可,以此提供方法调用的灵活性。重写关注多态性,而重载强调编译时多态。
12 1
|
23天前
|
Java 数据安全/隐私保护
09 Java面向对象三大特征(概述)
09 Java面向对象三大特征(概述)
45 4
|
23天前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
35 4
|
10天前
|
Java 数据安全/隐私保护
【Java 第五篇章】面向对象
封装隐藏对象内部细节,仅暴露出必要的接口,提升代码的安全性和可维护性。通过private修饰属性并提供公有的getter和setter方法实现。权限修饰符从private到public控制着访问范围,从类内到整个项目。封装可用于类及其内部结构。
12 0
|
12天前
|
安全 Java 程序员
阿里开发手册 嵩山版-编程规约 (四)OOP规约-Java程序员必看知识点!!!
《阿里开发手册 嵩山版》的OOP规约部分强调了面向对象编程的最佳实践,包括正确使用静态方法、覆写方法的注解、可变参数的使用、接口的稳定性、equals和compareTo方法的使用、BigDecimal的正确比较、包装类与基本数据类型选择、POJO类的属性和方法设计等,以提升代码的质量和维护性。
|
17天前
|
存储 SQL 搜索推荐
一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)
这篇文章是关于Java面试的笔记,涵盖了面向对象、JDK/JRE/JVM的区别、`==`和`equals`、`final`关键字、`String`、`StringBuffer`和`StringBuilder`的区别、重载与重写、接口与抽象类、`List`与`Set`、`hashcode`与`equals`以及`ArrayList`和`LinkedList`的对比等十个主题。
下一篇
云函数