【Java】内部类、枚举、泛型

简介: 【Java】内部类、枚举、泛型

1.内部类

1.1概述

内部类:指一个完全被定义在另一个类中的类。

是类中的五大成分之一,成员变量、方法、构造器、内部类、代码块。

我们一般在一个事物完全包含另一个事物,且该事物没有必要单独设计类时使用内部类。

1.2分类

内部类有四种形式,可分为以下四种类型:

  • 成员内部类

  • 静态内部类:有static修饰的内部类,属于类而非对象

  • 局部内部类:定义在方法中、代码块中、构造方法体中的类

  • 匿名内部类(重点):特殊的局部内部类。

1.3匿名内部类(重点)

以前的写法:

引入匿名内部类后:更加方便的创建子类对象。

匿名内部类是类的证明:

应用1:

应用2:匿名内部类直接作为一个参数来使用。

应用3:作为一个便捷对象参数传过去

代码:

package d1;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test {
    public static void main(String[] args) {
        JFrame win = new JFrame();
        JPanel panel = new JPanel();
        win.add(panel);
        JButton btn = new JButton("登录");
        panel.add(btn);
        btn.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(win,"登录成功!");
            }
        });
        win.setSize(500,500);
        win.setLocationRelativeTo(null);
        win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        win.setVisible(true);
    }
}

2.枚举

枚举:枚举是一种特殊的类,特殊在固定数量的类。

语法格式:

2.1一般枚举

枚举类的说明:

反编译:

2.2抽象枚举

2.3应用1:用枚举写单例

2.4应用2:标识常量

3.泛型

3.1泛型认识

定义类、方法、接口时,同时声明了多个类型变量,成为泛型类、泛型方法、泛型接口。

ArrayList的泛型:

没有使用泛型的ArrayList:

使用泛型的ArrayList:

3.2泛型原理

3.3泛型的定义

泛型类

泛型接口

泛型方法

拓展:泛型的上下限:

  • 泛型上限: ? extends Car : ?能接受的必须是Car或者其子类
  • 泛型下限: ? super Car : ?能接受的必须是Car或者其父类

3.4泛型的注意事项

  • 泛型擦除
    泛型是在编译阶段存在的,一旦程序被编译成了class文件,class文件中就不存在泛型了。

  • 泛型不支持基本数据类型,只支持对象类型(引用数据类型)。


EOF


相关文章
|
18天前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
101 60
|
21天前
|
Java API
[Java]泛型
本文详细介绍了Java泛型的相关概念和使用方法,包括类型判断、继承泛型类或实现泛型接口、泛型通配符、泛型方法、泛型上下边界、静态方法中使用泛型等内容。作者通过多个示例和测试代码,深入浅出地解释了泛型的原理和应用场景,帮助读者更好地理解和掌握Java泛型的使用技巧。文章还探讨了一些常见的疑惑和误区,如泛型擦除和基本数据类型数组的使用限制。最后,作者强调了泛型在实际开发中的重要性和应用价值。
17 0
[Java]泛型
|
30天前
|
存储 安全 Java
🌱Java零基础 - 泛型详解
【10月更文挑战第7天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
11 1
|
1月前
|
Java 语音技术 容器
java数据结构泛型
java数据结构泛型
27 5
|
1月前
|
存储 Java 编译器
Java集合定义其泛型
Java集合定义其泛型
17 1
|
1月前
|
存储 Java 编译器
【用Java学习数据结构系列】初识泛型
【用Java学习数据结构系列】初识泛型
20 2
|
1月前
|
安全 Java 编译器
Java基础-泛型机制
Java基础-泛型机制
15 0
|
1月前
|
Java 编译器
【Java】内部类
【Java】内部类
21 0
|
2月前
|
安全 Java 开发者
Java 枚举(enum)详解
Java 中的枚举(`enum`)是一种特殊的数据类型,用于定义一组固定的常量,提升代码的类型安全性和可读性。枚举使用 `enum` 关键字定义,支持方法和构造函数,具有类型安全、单例、自动序列化等特点,并且可以遍历和用于 `switch` 语句中。实际应用包括状态机、指令集、类型标识等场景。枚举使代码更加清晰易维护。
|
6月前
|
安全 Java 程序员
Java语言枚举(Enum)的深入探索
Java语言枚举(Enum)的深入探索