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("我先执行");// 先执行静态代码块
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java的关键字是指具有特定含义和用途的保留字,不能作为标识符(变量名、类名、方法名等)使用。以下是Java所有关键字的作用: 1. abstract:抽象类或抽象方法的修饰符,表示该类或方法不可被实例化或调用,只能被子类继承或实现。 2. assert:断言语句的关键字,用于在代码检查某个条件是否为真,如果不为真就会抛出一个 AssertionError 异常。 3. boolean:布尔类型的数据类型,表示真或假。 4. break:跳出循环或 switch 语句的关键字。 5. byte:字节类型的数据类型,表示-128到127之间的整数。 6. case:在 switch 语句用于判断某个值是否等于某个常量。 7. catch:用于捕获异常的关键字,在 try-catch-finally 结构使用。 8. char:字符类型的数据类型,表示单个字符。 9. class:声明一个类的关键字。 10. const:Java没有实际意义,但为了与 C++ 兼容保留了该关键字。 11. continue:跳过当前循环剩余的语句,执行下一次循环。 12. default:在 switch 语句用于指定默认的分支。 13. do:循环语句的关键字,执行一个语句块,然后根据条件判断是否继续执行。 14. double:双精度浮点数类型的数据类型。 15. else:在 if 语句用于指定条件不成立时执行的代码块。 16. enum:枚类型的关键字,用于定义一组常量。 17. extends:表示一个类继承自另一个类的关键字。 18. final:修饰类、方法和变量,表示它们的值或引用无法改变。 19. finally:在 try-catch-finally 结构,无论是否发生异常都会执行的代码块。 20. float:单精度浮点数类型的数据类型。 21. for:循环语句的关键字,用于执行一个语句块多次。 22. goto:Java没有实际意义,但为了与 C++ 兼容保留了该关键字。 23. if:条件语句的关键字,用于判断某个条件是否成立。 24. implements:表示一个类实现一个接口的关键字。 25. import:引入一个包或类的关键字。 26. instanceof:用于判断一个对象是否属于某个类的关键字。 27. int:整数类型的数据类型。 28. interface:声明一个接口的关键字。 29. long:长整型数据类型。 30. native:表示一个方法是本地方法(由本地代码实现)的关键字。 31. new:创建一个新对象的关键字。 32. package:声明一个包的关键字。 33. private:表示一个方法或变量只能被同一个类的其他方法或变量访问的关键字。 34. protected:表示一个方法或变量可以被同一个包的其他类访问,或者被继承的子类访问的关键字。 35. public:表示一个方法或变量可以被任何类访问的关键字。 36. return:从方法返回值的关键字。 37. short:短整型数据类型。 38. static:表示一个方法或变量属于类而不是属于对象的关键字。 39. strictfp:表示一个方法是严格遵守 IEEE 754 浮点数规范的关键字。 40. super:表示一个对象所属的超类的关键字。 41. switch:多分支语句的关键字。 42. synchronized:表示一个方法或代码块是线程安全的关键字。 43. this:表示当前对象的关键字。 44. throw:用于抛出异常的关键字。 45. throws:用于声明某个方法可能会抛出的异常的关键字。 46. transient:表示一个变量不会被序列化的关键字。 47. try:异常处理语句的关键字。 48. void:表示一个方法不返回任何值的关键字。 49. volatile:表示一个变量是易变的(可能会被多个线程同时访问)的关键字。 50. while:循环语句的关键字,用于执行一个语句块多次,直到条件不成立为止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值