问答详情
源自:4-9 学生选课---应用泛型管理课程 Ⅰ

关于遍历list的输出

在主函数中执行 lt.coursesToSelect.add("1111"); System.out.println(lt.coursesToSelect.get(4)); 可以直接得到字符串“1111”,但如果取得是一个course对象,就得到一个地址,这是为什么

提问者:大贤良师 2017-03-21 13:55

个回答

  • 江协伟
    2017-03-21 14:38:01
    已采纳

    See Also:

    java.io.PrintStream.println()

    java.io.PrintStream.println(boolean)

    java.io.PrintStream.println(char)

    java.io.PrintStream.println(char [])

    java.io.PrintStream.println(double)

    java.io.PrintStream.println(float)

    java.io.PrintStream.println(int)

    java.io.PrintStream.println(long)

    java.io.PrintStream.println(java.lang.Object)

    java.io.PrintStream.println(java.lang.String)

    上面是println的所有方法,对于你传递的Course对象,println只能认知为Object,然后我们来看


    void java.io.PrintStream.println(Object x) 方法:

    Prints an Object and then terminate the line.  This method calls at first String.valueOf(x) to get the printed object's string value, then behaves as though it invokes print(String) and then  println().

    Parameters:

    x   The Object to be printed.

    从上面可知,方法会首先调用一个String.valueOf(x)的方法讲其变成一个字符串然后再输出,x是你传递进去的值.

    所以你再自己去看String.valueOf(x)方法的内容吧

  • 慕粉4347788
    2017-03-21 14:30:16

    什么样的地址可以发出来看看么?大概是因为System.out.println输出的是String类型,如果是course对象,输出的就是它的内存地址