JavaSE——JDK1.8新特性概述

本文详细介绍了JavaSE 1.8的一些重要新特性,包括枚举的使用,如如何创建和定义枚举类,以及枚举在实际应用中的示例。此外,还讲解了注解的四种主要类型,如@Override、@Deprecated和@SuppressWarnings的使用场景。接口定义得到加强,可以包含默认方法和静态方法。文章还介绍了Lambda表达式的概念和优势,以及方法引用和内建函数式接口的应用。
摘要由CSDN通过智能技术生成

1.枚举

1.1.枚举问题引出

要讲枚举,首先要回顾多例设计模式,多例设计模式如下:构造方法私有化,类内部需要提供若干个实例化对象,后面通过static方法返回,示例如下:

class Color {
   
   private String title;
   public static final int RED_FLAG = 1;
   public static final int GREEN_FLAG = 2;
   public static final int BLUE_FLAG = 3;
   private static final Color RED = new Color("RED");
   private static final Color GREEN = new Color("GREEN");
   private static final Color BLUE = new Color("BLUE");
   public Color(String title) {
   
       this.title = title;
   }
   public static Color getInstance(int ch) {
   
       switch(ch){
   
           case RED_FLAG:
               return RED;
           case GREEN_FLAG:
               return GREEN;
           case BLUE_FLAG:
               return BLUE;
           default:
               return null;
       }
   }
   @Override
   public String toString() {
   
       return this.title;
   }
}

public class Test {
   
   public static void main(String[] args) {
   
       System.out.println(Color.getInstance(Color.BLUE_FLAG ));
   }
}
//BLUE

以上做法是是在JDK1.5以前的做法,这样做的目的是限制本类实例化对象产生的个数,但是从1.5开始有了枚举,以上代码可以用枚举来取代,示例代码如下:

enum Color {
   
   RED,BLUE,GREEN
}

public class Test {
   
   public static void main(String[] args) {
   
       System.out.println(Color.BLUE);
   }
}
//BLUE

实际上枚举就是一种高级的多例设计模式

1.2.Enum类

虽然JDK1.5提供了enumeration关键字,但是enum并不是一种新的结构,相反,它只是一种对类型的封装:使用enum关键字定义的枚举类型本质上相当于一个Class定义的类,继承了java.lang.Enum父类,在Enum类中有以下的方法:

  • 构造方法
protected Enum(String name, int ordinal)
  • 取得枚举姓名
public final String name()
  • 取得枚举序号
public final int ordinal()

上述方法的使用示例代码如下:

enum Color {
   
    RED,BLUE,GREEN
}

public class Test {
   
    public static void main(String[] args) {
   
        System.out.println(Color.BLUE.ordinal() + "=" + Color.BLUE.name());
    }
}
//1=BLUE

通过上述代码可以发现,枚举类默认继承Enum类。在枚举中还有一个方法可以取得所有枚举数据values(),返回值是一个枚举的对象数组,取得所有枚举数据示例代码如下:

enum Color {
   
    RED,BLUE,GREEN
}

public class Test {
   
    public static void main(String[] args) {
   
        for (Color temp:Color.values()) {
   
            System.out.println(temp.ordinal() + "=" + temp.name());
        }
    }
}
//0=RED
//1=BLUE
//2=GREEN

!!!请解释enum和Enum的区别?
enum是一个关键字,使用enum定义的枚举实际上就相当于一个类继承了Enum这个抽象类而已。

1.3.枚举中定义其他内容

虽然枚举等同于多例设计,但是多例设计是在一个类中产生的,所有该类中可以定义更多的属性和方法,所以在设计枚举时考虑到这些因素,提出了更为全面的设计方案:可以在枚举中定义属性、方法、实现接口。在枚举中定义更多的结构示例代码如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值