感谢你的路过,希望学生的笔记能给你一点微不足道的参考(2/100)
Java基础思维导图,完整Java体系的链接
目录标题
一,枚举
可以给自己的每一个对象添加专门的对应方法。
1.1概况:
枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
用于定义有限数量的一组同类常量,例如: 错误级别: 低、中、高、急 一年的四季: 春、夏、秋、冬 商品的类型: 美妆、手机、电脑、男装、女装… 在枚举类型中定义的常量是该枚举类型的实例。
1.2定义格式
权限修饰符 enum 枚举名称 {
实例1,实例2,实例3,实例4;
}
1.3枚举实现原理
实际上在使用关键字enum创建枚举类型并编译后,编译器会为我们生成一个相关的类,这个类继承了Java API中的java.lang.Enum类,也就是说通过关键字enum创建枚举类型在编译后事实上也是一个类类型而且该类继承自java.lang.Enum类。
代码:
package com.wyh.meiJu;
/**
* @Deacription Level类
* Level表示1.5之前使用枚举的方式
* Level1使用枚举表示Level意思的方式
* Level2正常使用枚举
* @Author 王宇辉
* @Date 2021/9/12 22:44
* @Version 1.0
**/
public class Level {
public static final Level LOW = new Level(1);
public static final Level MEDIUM = new Level(50);
public static final Level HIGH = new Level(100);
private int LevelValue;
private Level(int levelValue) {
LevelValue = levelValue;
}
public int getLevelValue() {
return LevelValue;
}
public void setLevelValue(int levelValue) {
LevelValue = levelValue;
}
}
package com.wyh.meiJu;
/**
* Level类
* 1.5之后的用法
*/
public enum Level1 {
LOW(1),MEDIUM(50),HIGH(100);
private int LevelValue;
private Level1(int levelValue) {
LevelValue = levelValue;
}
public int getLevelValue() {
return LevelValue;
}
public void setLevelValue(int levelValue) {
LevelValue = levelValue;
}
}
package com.wyh.meiJu;
public enum Level2 {
LOW,MEDIUM,HIGH;
}
1.4枚举的常见方法
代码:
package com.wyh.meiJu;
/**
* @Deacription 枚举的常见用法
* @Author 王宇辉
* @Date 2021/9/12 23:10
* @Version 1.0
**/
public class Demo01_YongFa {
public static void main(String[] args) {
System.out.println(Level.LOW.getLevelValue());
System.out.println(Level2.LOW.compareTo(Level2.HIGH)); // 比较此枚举与指定对象的顺序
System.out.println(Level2.LOW.compareTo(Level2.MEDIUM));
System.out.println(Level2.HIGH.compareTo(Level2.LOW));
System.out.println(Level1.LOW.name()); // 返回此枚举常量的名称,在其枚举声明中对其进行声明
System.out.println(Level1.LOW.toString()); // 返回枚举常量的名称,它包含在声明中
System.out.println(Level1.LOW.ordinal()); // 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
Level1 x = Enum.valueOf(Level1.class,"HIGH"); // 返回带指定名称的指定枚举类型的枚举常量。
System.out.println(x.name());
Level3.LOW.show();
Level3.MEDIUM.show();
}
// 最常见的枚举用法
public static void haha(Level1 l){
switch (l){
case LOW:break;
case HIGH:break;
}
}
}
1.5实现接口的枚举类
代码:
package com.wyh.meiJu;
/**
* 枚举接口
*可以给自己的每一个对象添加专门的对应方法。
*/
public enum Level3 implements LShow{
LOW{
@Override
public void show() {
System.out.println("低级别");
}
},MEDIUM{
@Override
public void show() {
System.out.println("中级别");
}
},HIGH{
@Override
public void show() {
System.out.println("高级别");
}
};
@Override
public void show() {
System.out.println("什么级别");
}
}
interface LShow{
void show();
}
1.6注意事项 :
一旦定义了枚举,最好不要妄图修改里面的值,除非修改是必要的。
枚举类默认继承的是java.lang.Enum类而不是Object类
枚举类不能有子类,因为其枚举类默认被final修饰
只能有private构造方法
switch中使用枚举时,直接使用常量名,不用携带类名
不能定义name属性,因为自带name属性
不要为枚举类中的属性提供set方法,不符合枚举最初设计初衷。
二,注解
2.1概况:
2.1.1概念:说明程序的。给计算机看的。特别方便描述依赖关系
2.1.2注释:用文字描述程序的。给程序员看的
2.1.3定义:
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
2.1.4概念描述:
JDK1.5之后的新特性
说明程序的
使用注解:@注解名称
2.1.5作用分类:
①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】我们自己不能改的,比如@since
②代码分析:通过代码里标识的注解对代码进行分析【使用反射】
③编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】我们自己不能改的,比如@override
2.2学习的重点
理解 Annotation 的关键,是理解 Annotation 的语法和用法.
学习步骤:
2. 怎么使用内置注解
3. 怎么自定义注解
4. 反射中怎么获取注解内容
2.3内置注解
@Override : 重写 * 定义在java.lang.Override
@Deprecated:废弃 * 定义在java.lang.Deprecated
@SafeVarargs Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
@FunctionalInterface: 函数式接口 * Java 8 开始支持,标识一个匿名函数或函数式接口。
@Repeatable:标识某注解可以在同一个声明上使用多次 Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
@SuppressWarnings:抑制编译时的警告信息。 * 定义在java.lang.SuppressWarnings 三种使用方式
1. @SuppressWarnings(“unchecked”) [^ 抑制单类型的警告]
2. @SuppressWarnings(“unchecked”,“rawtypes”) [^ 抑制多类型的警告]
3. @SuppressWarnings(“all”) [^ 抑制所有类型的警告
参数列表: