首页 > 编程语言 >Java基础-学习笔记11

Java基础-学习笔记11

时间:2024-08-14 11:38:00浏览次数:8  
标签:11 Java String Season 笔记 枚举 desrip 注解 name

11 枚举、注解

枚举

枚举是一组常量的集合。
可以这么理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。比如,Season类,只包含SPRING、SUMMER、AUTUMN、WINTER四个对象常量。
两种实现方式

(1)自定义类实现枚举

      1) 构造器私有化
      2) 本类内部创建一组对象 [四个 春夏秋冬]
      3) 对外暴露对象(通过为对象添加 public final static 修饰符)
      4) 可以提供 get方法,但不要提供 set

//main:
System.out.println(Season.AUTUMN.getName());
System.out.println(Season.SPRING.getDesrip());

class Season
{
    private String name;
    private String desrip;
    private Season(String name, String desrip)
    {
        this.name = name;
        this.desrip = desrip;
    }

    public static final Season SPRING = new Season("Spring", "warm");
    public static final Season SUMMER = new Season("Summer", "hot");
    public static final Season AUTUMN = new Season("Autumn", "cool");
    public static final Season WINTER = new Season("Winter", "cold");

    public String getName()
    {
        return name;
    }

    public String getDesrip()
    {
        return desrip;
    }
}

(2)enum 关键字实现枚举

  1. 使用 enum 代替 class
  2. 使用 enum 来实现枚举,要求将定义的常量对象写在前面
  3. 如果有多个常量对象,用,(逗号)间隔即可,最后用;(分号)结尾
  4. 直接使用 常量名(构造器实参列表) 就可创建常量对象
  5. 如果使用的是无参构造器创建常量对象,则可以忽略小括号和实参列表
  6. 当我们使用 enum 来实现枚举时,默认会继承 Enum类(可通过 javap 反编译查看)
//main:
System.out.println(Season.AUTUMN.getName());
System.out.println(Season.SPRING.getDesrip());

enum Season
{
    SPRING("Spring", "warm"),SUMMER("Summer", "warm"),AUTUMN("Autumn", "cool"),WINTER("Winter", "cold");
    private String name;
    private String desrip;
    private Season(String name, String desrip)
    {
        this.name = name;
        this.desrip = desrip;
    }

    public String getName()
    {
        return name;
    }

    public String getDesrip()
    {
        return desrip;
    }
}

enum 常用方法

枚举类.valueOf(名称): 返回名称对应的枚举对象,如果不存在就会报错
枚举实例.ordinal(): 返回枚举实例对应的索引号,默认从0开始
枚举类.values(): 返回当前枚举类中所有常量形成的列表
枚举实例1.compareTo(枚举实例2): 比较两个枚举常量,比较的是位置号,返回实例1的位置号-实例2的位置号

enum 使用细节

  1. enum 类已经隐式继承了 Enum 类了,所以不能再继承其他类了。
  2. enum 类和普通类一样,可以实现接口

注解

1)注解(annotation)也被称为元数据(metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。
2) 相当于嵌入再代码中的补充信息。
3) 在 JavaSE,注解的使用目的比较简单,例如标记过时内容(@Deprrcated)、限定重写方法(@Override)、抑制编译器警告(@SuppressWarning); 在JaveEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。
4) @Target是修饰注解的注解,是元注解。
5) 写注解的价值在于,编译会自动进行语法校验。比如说,如果写了@Override注解,编译器就会去检查该方法是否真的重写了父类的方法,如果的确构成重写,则编译通过。否则编译错误。

元注解 (了解即可)

 // 元注解的种类:
 1)Retention  // 指定注解的作用范围(时间),三种:
 // SOURCE(编译器使用后直接丢弃这种策略的注解)
 // CLASS (注解记录保留在class文件中,运行Java程序时,JVM不会保留注解)
 // RUNTIME(注解记录保留在class文件中,运行时JVM会保留注解,程序可以通过反射获取该注解)
 2)Target  // 指定注解可以在那些地方使用,取值包括 类、方法、构造器...
 3)Documented  // 指定该注解是否在javadoc中体现
 4)Inherited  // 子类会自动继承父类的注解

标签:11,Java,String,Season,笔记,枚举,desrip,注解,name
From: https://www.cnblogs.com/97gogo/p/18358169

相关文章

  • Java中封装的学习
    封装目录封装概念优点例子概念封装(encapsulation)是指对于某个对象,Java隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格......
  • java几种常见漏洞种类及处理方案
    一、SQLInjection(SQL注入漏洞)1.使用参数化查询(PreparedStatements)参数化查询是防止SQL注入最有效的方法之一。它确保用户输入的数据作为参数传递,而不是作为SQL命令的一部分。在Java中,可以使用PreparedStatement来实现这一点。示例代码:Stringsql="SELECT*FROMusers......
  • Java--抽象类与接口
    目录抽象类的概念1.什么是抽象(与具体类相对)2.为什么要抽象抽象类的好处抽象类和接口的区别抽象类的概念1.什么是抽象(与具体类相对)Java专门提供了一种机制,名为“抽象方法”。它属于一种不完整的方法,只含有一个声明,没有方法主体。下面是抽象方法声明时采用的语法:abstractvoidX......
  • Java--继承
    目录概念优缺点object类null概念由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们知道,这并不是万能的,有些事物有共性,但还存在区别,比如码农,简单封装起来如下:优缺点优点:1、提高代码的维护性(只需要改动父类)。2、提高代码的复用性(共性的成员抽取到父类中......
  • [JAVA] 什么是多态?多态的使用和代码实现(超详细版)
    理解多态在JAVA中,多态是面向对象编程的重要特征之一,多态意味着在程序中同一个行为具有多种不同的表现形式。为了更好的理解多态的含义和使用方法,我们可以利用生活中的例子来帮助我们学习比如一些动物们都有跑,跳,吃等等的通用行为能力,不同的动物针对这些行为的表现形式是不同......
  • 结构开发笔记(三):solidworks软件(二):小试牛刀,绘制一个立方体
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141122350长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • 深入理解 JavaScript 闭包
    前言在JavaScript中,闭包(Closure)是一个非常强大且常见的概念,它使得函数可以访问其外部作用域中的变量,即使在该函数外部作用域已经执行完毕的情况下。闭包广泛应用于回调函数、事件处理器、模块化编程等多个场景。本文将详细探讨闭包的定义、工作原理、常见应用场景以及潜在的陷......
  • 洛谷题单指南-常见优化技巧-P1115 最大子段和
    原题链接:https://www.luogu.com.cn/problem/P1115题意解读:最大连续子序列的和。解题思路:DP的做法可参考:https://www.cnblogs.com/jcwy/p/18144124也可以采用双指针来枚举:i从1开始,j=i用j来枚举连续序列,如果已有序列和+下一个a[j]>=下一个a[j],那个j一直++,累加序列和如果出......
  • 基于java的在线问卷调查系统的设计与实现
    @TOCspringboot145基于java的在线问卷调查系统的设计与实现第1章绪论**1.1课题背景二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。时代进步的标志,就是让人们过上更好的生活。在互联网诞生之前,地域位置往往是人们思想上......
  • Java jSerialComm库串口通信(USB RS-485/232) 查询/应答、主动上报模式
    JavajSerialComm库串口通信(USBRS-485/232)查询/应答、主动上报模式 查询/应答模式要在Java中通过USBRS-485接口发送和接收特定的数据帧,你需要利用适当的串行通信库。在Java中,一个常见的选择是使用RXTX或jSerialComm库。这些库允许Java应用程序与串行端口进行通信。......