1 枚举
枚举可以看成和类非常相似的结构,其字段由一组不变的常量构成。
声明语法
enum 枚举类名{
字段
方法
构造方法
}
枚举中的构造方法默认是private修饰,不能使用public。
示例
public enum Sex {
MAN,WOMAN;
}
public class Test {
public static void main(String[] args) {
// 直接将枚举中的值给变量
Sex s = Sex.MAN;
System.out.println(s); // MAN
}
}
打印对象为中文
1.在每一个枚举对象中设置一个String类型的字段保存中文描述;
2.在创建每一个枚举对象的时候给中文描述字段赋值;
3.覆写toStirng,返回当前枚举对象的中文描述。
public enum Sex {
// 将中文以String型式表示
MAN("汉子"), WOMAN("妹子");
private String name;
// 构造方法
private Sex(String name) {
this.name = name;
}
public String toString() {
return this.name;
}
}
2 接口
2.1 接口与类
接口
软件与软件之间的数据交互接口,Java中的接口看成是一个和类非常相似的结构,接口是定义类的标准(规范)。
声明语法
interface 接口名{
字段
方法
}
字段:全部都是public static final修饰的全局常量,可以直接调用。
方法:全部都是抽象方法(缺省修饰public abstract)没有方法体,需要子类覆写才有意义,static final修饰的方法都不能够被覆写。
一般接口写在一个独立的Java文件中,编译完毕之后也会生成独立的字节码文件。
接口的实现(implements)
定义一个类来实现(implements)接口:
public interface A {}
public class B implements A {}
特点:
1.必须全部覆写接口中的抽象方法,否则B类也抽象类;
2.A接口类型相当于是B类型的父类,具有多态的特征;
public interface A {
void eat();
}
public class B implements A {
@Override
public void eat() {}
}
public class Test {
public static void main(String[] args) {
A a1 = new B();
a1.eat();
}
}
3.一个类可以实现多个接口,需要覆写所有接口中的抽象方法;
4.一个类可以在继承一个类的同时实现多个接口,但是继承的代码必须写实现前面。
2.2 接口与接口
一个接口可以继承多个接口。
public interface A {}
public interface C {}
public interface B extends A, C {}
public class Test implements B {
// 此处需要覆写ABC中的所有的抽象方法
}
3 代码块
代码块:可以看成是一块代码,一般都是有{}。
1.普通代码块(局部代码块):写在方法中,一般结合if、for等结构。
2.构造代码块(极少使用):直接写在类中的代码块(没有static修饰),编译完毕之后会在每一个构造方法中复制一份。
3.静态代码块(偶尔使用):直接写在类中,用static修饰,在类加载的时候执行,优先于主方法执行,可以在类加载的时候做初始化的操作。
public class Test {
public static void main(String[] args) {
System.out.println("我后执行");// 再执行主方法
}
static {
System.out.println("我先执行");// 先执行静态代码块
}
}