Java_内部类枚举

内部类

内部类:

  • 是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。
  • 场景:当一个类的内部,包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。

内部类有四种形式:
1.成员内部类
2.静态内部类
3.局部内部类
4.匿名内部类

成员内部类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

静态内部类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

局部内部类

在这里插入图片描述

匿名内部类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

应用

btn.addActionListener(new ActionListener() {//参数是一个对象,而这个对象又是接口类型,所以需要使用匿名内部类
@Override
	public void actionPerformed(ActionEvent e) {
	JOptionPane.showMessageDialog(win,"登陆一下");
           }
       });
package com.xsy.d5_inner;

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,"登陆一下");
//            }
//        });

        //匿名内部类的核心目的:是简化代码
        btn.addActionListener(e->JOptionPane.showMessageDialog(win,"登陆一下"));

        //为窗口设置大小
        win.setSize(400,400);
        win.setLocationRelativeTo(null);//设置窗口居中
        //关闭窗口退出程序
        win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //展示
        win.setVisible(true);
    }
}

枚举

在这里插入图片描述
在这里插入图片描述

抽象枚举

package com.xsy.d6_enum;

public enum abstract_enum {
    X(){//调用无参构造器
        @Override
        public void go() {

        }
    },Y("张三"){//调用有参构造器
        @Override
        public void go() {
            System.out.println(getName()+"在跑~~~");
        }
    };

    private String name;

    abstract_enum() {
    }

    abstract_enum(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void go();
}

枚举实现单例类

public enum A {
X;//还是个线程安全的单例类
}

枚举的应用场景

用来表示一组信息,然后作为参数进行传输。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/244462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

L1-042:日期格式化

题目描述 世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。 输入格式: 输入在一行中按照“mm-dd-yyyy”的格式给出月…

SSL通配符详解

通配符证书是一种特殊的SSL/TLS证书,它允许一个域名及其所有子域名使用相同的证书。这意味着,如果您有一个通配符证书,您可以为该证书中的任何子域名提供SSL/TLS加密,而无需为每个子域名单独购买和配置证书。 通配符证书使用通配…

vue前端访问Django channels WebSocket失败

现象 前端报错:SSH.vue:51 WebSocket connection to ‘ws://127.0.0.1:8000/server/terminal/120.59.88.26/22/1/’ failed: 后端报错:Not Found: /server/terminal/120.79.83.26/22/1/ 原因 django的版本与channels的版本不匹配(django…

统计学基础知识

记录一些基础概念 1.总体:是指根据研究目的所确定的观察单位某项特征的集合。 2.样本:就是从总体中抽出的部分观察单位某项特征的集合。 3.参数:是用于描述总体特征的指标,如总体均数(μ),总体标…

XCP详解「4.1·问题-polling有效,DAQ无效」

改用DAQ模式后,没有周期报文发出,log如下 正常的LOG 排查发现 ,Task里没有mapping CanXcp_MainFunction,只是mapping了Xcp_MainFunction这就导致了XCP polling模式功能正常,daq无数据 修改1 修改2, 如果还没奏效&…

Oracle数据库本地部署结合内网穿透实现公网环境PLSQL远程访问

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle,是甲骨文公司的一款关系…

详解接口测试

目录 什么是接口? 接口协议的类型 接口测试是什么 HTTP接口的测试用例设计 HTTP接口的测试方法 什么是接口? 在面向对象编程中,接口是一个抽象的概念,用于定义类应该具有的方法和属性。一个类可以实现一个或多个接口&#xf…

Golang导入导出Excel表格

最近项目开发中有涉及到Excel的导入与导出功能,特别是导出表格时需要特定的格式(单元格合并等),废话不多说,直接上代码了。 首先用到一个第三方库,实测还是很强大很好用的,就是这个https://git…

官宣 | HelpLook已入驻企业微信应用市场

HelpLook正式入驻企业微信第三方应用市场。 HelpLook支持自定义域名与AI站内搜索,能够帮助企业微信用户搭建所见即所得的企业知识库、产品帮助中心、用户手册、企业博客。 | 怎么找到HelpLook并开始使用 在企业微信的第三方应用就可直接搜索HelpLook,添…

innovus:generateRCFactor对比第三方spef方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 preroute/postroute以及signoff工具之间rc factor直接影响,各阶段时序与最终signoff工具之间的差别。 以starrcPT为signoff工具,innovus需要用generate…

迎接更高效的数据安全合规与风险评估,美创科技DCAS正式商用发布!

数据安全合规与风险评估,是清晰数据安全合规与风险差距,实现可落地数据安全建设和持续改进的关键一环。然而实施起来,你的团队是否面临着这些烦恼: 数据安全合规要求繁多,难以全面掌握? 复杂评估流程带来效…

计算两股不同流量的气体,通过换热器换热后,高温气体的出口温度

# -*- coding: utf-8 -*- """ Created on Thu Nov 30 11:23:12 2023 计算两股不同流量的气体,通过换热器换热后,高温气体的出口温度 (煤烟二级,计算煤烟二级热侧出口温度) ------------------------------------------------ …

初识大数据应用,一文掌握大数据知识文集(1)

文章目录 🏆初识大数据应用知识🔎一、初识大数据应用知识(1)🍁 01、请用Java实现非递归二分查询?🍁 02、是客户端还是Namenode决定输入的分片?🍁 03、mapred.job.tracker命令的作用?…

Python 接口测试response返回数据对比的方法

背景:之前写的接口测试一直没有支持无限嵌套对比key,上次testerhome逛论坛,有人分享了他的框架,看了一下,有些地方不合适我这边自己修改了一下,部署在jenkins上跑完效果还不错,拿出来分享一下。…

记录 | mac安装node

第一种方法(下载官网对应 node 版本的 .pkg文件) 访问nodejs官网(Node.js 中文网)选择合适的版本 双击刚下载的 .pkg 文件,进行安装 安装完成后检查 node 和 npm 的版本 node -v npm -v第二种方法,是使用 Homebrew 使用命令安装 //默认安…

Outlook邮箱设置邮件签名的步骤指南

outlook邮箱如何设置邮件签名? 要为Outlook邮箱设置电子邮件签名,请按照以下步骤操作:   1、打开Outlook,从左侧边栏选择“邮件”选项卡。   2、在文件菜单中,从右上角单击“设置”选项。   3、找到“撰写和答复”部分&…

第四十一篇:移动端调试工具

1.下载工具 npm install vconsole 2.在main.js里全局引用 > import Vconsole from vconsole > new Vconsole()

【Linux进程控制】进程终止和等待(waitpid回收僵尸进程)

前言 什么是写时拷贝 创建子进程,没必要将不会被访问 或只读的数据重新拷贝一份 只有将来会被父或子进程写入的数据才 值得拷贝,提前拷贝也并不会立马使用 一般而言即使是os,也无法提前知道 哪些空间可能被写入 所以os选择写时拷贝技术对父子…

程序员必读:Python 中如何完美处理日志记录?

日志记录在软件开发中扮演着至关重要的角色。它不仅可以帮助开发人员跟踪应用程序的状态和行为,还能提供有价值的诊断信息。Python 提供了内置的 logging 模块,为开发者提供了一个强大且灵活的日志记录工具。 日志的重要性 在软件开发中,对…

uni-app开发者必看:如何轻松适配微信小程序?

一、v-if避坑 看uniapp官方文档上,v-if是支持多端支持的。小程序上仅支持微信小程序,用hbuilderx运行到小程序后就会变成微信的指令语法wx:if。这里有个坑,要特别注意! v-if指令表达式 如果指令表达式为json对象,而…