18_JavaSE_接口和枚举类

Posted Jack·Kwok

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了18_JavaSE_接口和枚举类相关的知识,希望对你有一定的参考价值。

1. 接口的定义

接口:接口不是类,它是一个抽象类型,是抽象方法的集合,用 interface 声明。

接口并不是类,但是有很多与类相同的特征。例如:一个接口中可以有若干个方法;接口文件保存在.java结尾的文件中,文件名为接口名;字节码文件仍保存在 .class文件中。
同时接口也有不同于类的特征:
1、接口不能被实例化,没有构造方法
2、接口会隐式地用abstract修饰,因此不需要自行加abstract关键字。
3、所有方法都公共隐式抽象(即隐式用public abstract修饰),因此不能有具体的方法体,只需要声明。
4、成员变量会被public static final隐式地修饰,其实也就是常量罢了。
5、一个类支持实现多个接口(这点与类的单继承不同。)

接口的声明:

[可见度] interface 接口名称 [extends 其他的接口名] 
        // 声明变量
        // 抽象方法

2. 接口的实现

当一个非抽象类要实现接口时,需要实现接口中的所有方法,并且方法名要与接口中的方法名一致,返回值类型要相同或者相兼容。
实现接口的语法如下:

[修饰词,修饰词...] class 类名 implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...

3. 枚举类

枚举类实际上是一个特殊的类,主要用于表示一组有联系的常量。例如:季节、月份、星期、尺码、颜色等等,一般用关键字 enum定义。定义如下:

enum Season
	SPRING,SUMMER,AUTUMN,WINTER;

使用枚举类:

public class Test

	public static void main(String[] args)
		Season s = Season.SPRING;
		System.out.println(s);//输出:SPRING
	

枚举类也可以用于 switch 语句中:

public class Test
  public static void main(String[] args) 
    Season s = Season.SPRING;

    switch(s) 
      case SPRING:
        System.out.println("春天");
        break;
      case SUMMER:
         System.out.println("夏天");
        break;
      case AUTUMN:
        System.out.println("秋天");
        break;
      case WINTER:
      	System.out.println("冬天");
        break;
    
  

enum 定义的枚举类默认都有三个类方法:
1、values() 静态方法,直接用枚举类的类名访问。返回一个该类的数组,数组中存着枚举类中所有的值,一般可用于遍历枚举类。
2、ordinal() 非静态方法,用枚举类对象去访问,返回该对象在枚举类中的索引值。
3、valueOf() 静态方法,直接用枚举类的类名访问。返回指定字符串值的枚举常量。

以上是关于18_JavaSE_接口和枚举类的主要内容,如果未能解决你的问题,请参考以下文章

遍历枚举接口的元素

JavaSE-枚举类

JavaSE知识-09(面向对象_多态&抽象类&接口)

Java_枚举类和注解

JavaSE复习_6 枚举类

JavaSE_坚持读源码_Class对象_Java1.7