枚举类
枚举类的理解
- 类的对象是有限个的,确定的
- 当需要定义一组常量时,强烈建议枚举类
public class SeasonTest {
public static void main(String[] args) {
Season spring = Season.SPRING;
System.out.println(spring);
}
}
class Season{
private final String seasonName;
private final String seasonDesc;
private Season(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
public static final Season SPRING=new Season("春天","春暖花开");
public static final Season SUMMER=new Season("夏天","夏日炎炎");
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}
public class SeasonTest1 {
public static void main(String[] args) {
Season1 summer = Season1.SUMMER;
System.out.println(summer);
}
}
enum Season1{
SPRING("春天","春暖花开"),
SUMMER("夏天","夏日炎炎");
private final String seasonName;
private final String seasonDesc;
private Season1(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
Enum类常用方法
方法 |
说明 |
values() |
返回枚举类型的对象数组 |
valueof(String str) |
返回枚举类中对象名是str的对象 |
toString() |
返回当前枚举对象常量的名称 |
public class SeasonTest1 {
public static void main(String[] args) {
Season1 summer = Season1.SUMMER;
System.out.println(summer);
System.out.println(summer.toString());
Season1[] values = Season1.values();
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
Season1 summer1 = Season1.valueOf("SUMMER");
System.out.println(summer1);
}
}
enum Season1{
SPRING("春天","春暖花开"),
SUMMER("夏天","夏日炎炎");
private final String seasonName;
private final String seasonDesc;
private Season1(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
使用enum关键字定义枚举类实现接口的情况
public class SeasonTest2 {
public static void main(String[] args) {
Season2 spring = Season2.valueOf("SPRING");
spring.show();
}
}
interface info{
void show();
}
enum Season2 implements info{
SPRING("春天","春暖花开"),
SUMMER("夏天","夏日炎炎");
private final String seasonName;
private final String seasonDesc;
private Season2(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public void show() {
System.out.println("展示一段话");
}
}
public class SeasonTest2 {
public static void main(String[] args) {
Season2 spring = Season2.valueOf("SPRING");
spring.show();
}
}
interface info{
void show();
}
enum Season2 implements info{
SPRING("春天","春暖花开"){
@Override
public void show() {
System.out.println("春天展示");
}
},
SUMMER("夏天","夏日炎炎"){
@Override
public void show() {
System.out.println("夏天展示");
}
};
private final String seasonName;
private final String seasonDesc;
private Season2(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
注解(Annotation)
- Annotation是代码中的特殊标记
- 在编译,类加载,运行时被读取,并执行对应的操作
- Annontation可以像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量声明
生成文档相关的注解
注解 |
说明 |
@author |
表明开发该类的作者,多个用‘,’分割 |
@version |
表明该类模块的版本 |
@see |
参考转向,也就是主题 |
@since |
从哪个版本开始增加的 |
@param |
对方法中某参数说明,没参数就不写 |
@return |
对方法返回值说明,void就不写 |
@exception |
对方法可能抛出异常说明,没throw显示抛出异常就不写 |
注:文章来源地址https://uudwc.com/A/Oq4Pg
- @param,@return,@exception这三个方法只用于方法
- @param格式要求 @param 形参名,形参类型,形参说明
- @return格式要求 @return 返回值类型 返回值说明
- @exception格式要求 @exception 异常类型,异常说明
编译时进行格式检查(JDK内置三个基本注解)
注解 |
说明 |
@Override |
限定重写父类方法 |
@Deprecated |
用于表示所修饰的元素已过时 |
@SuppressWarnings |
抑制编译器警告 |
跟踪代码依赖性,实现替代文件配置功能
- Servlet3.0提供了注解,使得不再需要在web.xml文件中进行Servlet的部署
- Spring中事务管理
自定义注解
- 注解声明为@interface
- Annotation的成员变量在定义中以无参数方式方法的形式来声明,其方法名和返回值定义了该成员的名字和类型
- 如何自定义成员没有值,起到标识作用
public @interface MyAnnotation {
String value() default "hello";
}
JDK中的元注解
注解 |
说明 |
取值 |
@Retention |
只能用于修饰一个Annotation定义,用于指定该Annotation类的生命周期,@Retention包含一个RetentionPolicy类型的成员变量 |
SOURCE(编译时抛弃)CLASS(不加载到内存里)RUNTIME(加载到内存,通过反射获取) |
@Target |
用于修饰Annotation,用于指定修饰的Annotation能用于修饰哪些程序元素 |
CONSTRUCTOR(构造器)FIFLD(域)LOCAL_VARIABLE(局部变量)METHOD(方法) |
@Documented |
该Annotation类将被javadoc工具提成文档 |
|
@Inherited |
被他修饰的Annotation将具有继承性 |
|
可重复注解
- 可以在一个类上多次注解
- 在MyAnnotation上声明@Repeatable,成员之为MyAnnotations.class
- MyAnnotation的Target和Retention等元注解和MyAnnotations相同
文章来源:https://uudwc.com/A/Oq4Pg
原文地址:https://blog.csdn.net/weixin_64925940/article/details/128036350
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!