当变量(尤其是方法参数)只能从一小部分可能值中提取一个值时,应始终使用枚举。 如果使用枚举而不是整数(或字符串代码),则会增加编译时检查,并避免传递无效常量时出错,...
声明枚举后,我们可以使用switch语句检查相应的值。 Rank a = Rank.SOLDIER;switch(a) { case SOLDIER: System.out.println("Soldier says hi!"); break; case SERGEANT: System.out.println("Sergeant says Hello!"); break; case CAPT...
枚举是用于定义常量集合的特殊类型。 下面是一个简单的枚举示例: enum Rank { SOLDIER, SERGEANT, CAPTAIN} 注意,这些值是逗号分隔的。 您可以使用点语法引用上面枚举中的常量。 Rank a = R...
每个对象都有一个预定义的equals()方法,用于语义相等测试。 但是,为了使它对我们的类有效,我们需要重写它并检查我们需要的条件。 生成equals()方法有一种简单而快速的方法...
请记住,创建对象时,变量会存储对对象的引用。 因此,当使用相等测试运算符(==)比较对象时,它实际上比较的是引用,而不是对象值。 例子: class Animal { String name; Animal(String n...
Java支持嵌套类;一个类可以是另一个类的成员。 创建一个内部类非常简单。只需在一个类中编写一个类。与类不同,内部类可以是私有的。一旦声明了内部类private,就不能从类外部的...
修改仅适用于当前对象,而不适用于类本身。 因此,如果我们创建该类的另一个对象,start方法的实现将是该类中定义的对象。 class Machine { public void start() { System.out.println("Starting...")...
匿名类是一种动态扩展现有类的方法。 例如,考虑拥有一个类机器: class Machine { public void start() { System.out.println("Starting..."); }} 创建Machine对象时,我们可以动态更改start方法。 public s...
对于类,有两种类型转换。 向上转型 可以将子类的实例强制转换为其超类。 考虑下面的例子,假设猫是动物的一个子类。 Animal a = new Cat(); Java自动将Cat类型变量升级为动物类型。 向下...
将一种类型的值赋给另一种类型的变量称为类型转换。 若要将值强制转换为特定类型,请将该类型放在括号中,并将其放在值前面。 例子: int a = (int) 3.14;System.out.println(a);// 输出 3 上...