Java中的枚举、接口和代码块

来源:互联网 发布:教育统计软件安装 编辑:程序博客网 时间:2024/05/17 07:00

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("我先执行");// 先执行静态代码块    }}
原创粉丝点击