在 Java 中使用类和对象关键字

  • 本文关键字:对象 关键字 Java java
  • 更新时间 :
  • 英文 :


>有人可以提供一个实际的例子(如果可能的话,可以解释为什么在Java中使用"对象"和"类"关键字(来解释何时或为什么使用"对象"和"类"关键字。不幸的是,在查看了在线解释之后,仍然不清楚为什么您将某些内容声明为"Object obj"或类似的"Class cls"。

ObjectClass不是关键字;相反,它们是类。

您可以将Object用作泛型类,例如创建一个泛型数组,如下所示:

enum DAY {
SUN, MON, TUE, WED, THU, FRI, SAT;
}
public class Main {
public static void main(String[] args) {
Object[] arr = { 1, "One", 1.5, true, DAY.THU };
for (Object obj : arr) {
System.out.println(obj);
}
}
}

输出:

1
One
1.5
true
THU

Class类在处理反射时最常用。

要知道的重要一点是,Object 是所有对象的超类。 如果你想使用一个包含不同类对象的数组,这些对象不共享其他更具体的超类,你可以只使用对象数组:

Object[] arr = new Object[2];
arr[0] = new Double(2.3);
arr[1] = new Integer(4);
int sumOfIntegers = 0
for(int i = 0; i < arr.length; i++){
if(arr[i] instanceof Integer){
sumOfIntegers += (Integer)arr[i];
}
}

通常你应该尝试阻止这些结构,但例如,一些库总是只返回对象,以负责检查/知道类型。

类只是包含一些元数据的类的包装对象。

这里有两个例子。但当然,存在大量的可能性。

许多方法可能会请求对象,然后相应地调整其行为。例如,通过在运行时检索对象类:

public static void displayObject(Object o) {
// Using Class of object instance:
if(o.getClass().isAssignableFrom(GoodLookingItem.class)) {
System.out.println((GoodLookingItem)o).toNiceString());
}
// Using class of object instance through instanceof
else if(o instanceof PrettyItem) {
System.out.println((PrettyItem)o).toPrettyString());
}
// No class of interest here: default to toString() method of native Object class:
else {
System.out.println(o.toString());
}
}

这里的另一个例子是使用对象映射,其中通常 put(( 和 get(( 方法的调用者将知道映射将返回哪种/类的对象。这在定义复杂的数据结构时很常见,即在构建缓存时。

Map<String,Object> simpleStoreMap = new HashMap<>();
// Put whatever you wish:
simpleStoreMap.put("GoodLookingItem-1", new GoodLookingItem());
simpleStoreMap.put("PrettyItem-1", new PrettyItem());
simpleStoreMap.put("SomeInteger-123", 123);
// Get whatever you want and cast it or not..:
Object obj1 = simpleStoreMap.get("GoodLookingItem-1");
PrettyItem obj2 = (PrettyItem)simpleStoreMap.get("PrettyItem-1");
Integer obj3 = (Integer)simpleStoreMap.get("SomeInteger-123");

最新更新