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_接口和枚举类的主要内容,如果未能解决你的问题,请参考以下文章