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

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("我先执行");// 先执行静态代码块
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值