有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中在哪里使用对象类?

我需要了解java中的对象类。这里有几个代码我想知道我们为什么使用它,在哪里使用它

Object obj = arg0.getItemAtPosition(arg2);
String str = obj.toString();

共 (3) 个答案

  1. # 1 楼答案

    对象类在变量的特定类未知时使用。对象类是许多类(整数、Sting等)的父类。在上面提到的情况下,getItemAtPosition()类返回一个Object实例,因为例如微调器中可以有许多不同的类类型,所以它返回一个通用类(对象),然后在上下文中已知目标类型时,将其转换为字符串(或其他类,具体取决于情况)

  2. # 2 楼答案

    所有的“Object”都继承自Object,所以Java中的任何类基本上也是Object类型

    http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

    因此,所有类都隐式地有几个方法:


    Method Summary
    
    protected  Object   clone() 
    
     boolean    equals(Object obj) 
    
    protected  void finalize() 
    
     Class  getClass() 
    
     int    hashCode() 
    
     void   notify() 
    
     void   notifyAll() 
    
     String toString() 
    
     void   wait() 
    
     void   wait(long timeout) 
    
     void   wait(long timeout, int nanos) 
    

    如有必要,您可以重写这些方法以提供自己的功能

    例如,您可以重写toString方法,以返回一个String,您认为它总结了类的特定实例。然后,如果将Object传递给System.out.println之类的对象,它将打印toString方法返回的内容

    更多阅读:

    http://journals.ecs.soton.ac.uk/java/tutorial/java/javaOO/objectclass.html

    下面是一些不错的继承教程:

    http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

    http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html

    http://www.cs.utexas.edu/~lavender/courses/tutorial/java-06.pdf

  3. # 3 楼答案

    通常Object只应在处理不同或未知类型的元素集合时使用。然后通常是instanceof和cast语句。许多API返回Object,然后可以提供不同的类型,其中一些是Java 4和更早版本在泛型之前的遗留。在任何可能的情况下,这都应该被泛型取代

    编辑

    根据一些基本规则,您永远不应该执行以下操作:Object ob = new Object();在任何代码中都不应该有理由实例化Object。唯一应该使用Ojbect的时间是不知道类型的时候

    泛型如何改变这一点的一个例子是Collections.max。在Java4中,它返回ObjectJava 4 Collections),在Java6中,它有一个返回泛型TJava 6 Collections)的版本

    java 4:public static Object max(Collection coll)

    返回Object,因为当时Collection不是泛型

    java 6:public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)

    返回T,因为后Java 5 Collection是泛型的

    重点是,在过去,许多API返回Object仅仅是因为Java没有泛型。现在,在大多数情况下,应该使用泛型,但并非所有API都已更新。接下来,你应该尽可能使用泛型而不是Object