object的toString方法返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了object的toString方法返回相关的知识,希望对你有一定的参考价值。

public class test1

/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub

Object obj=new Object();
obj=100;
System.out.print(obj.toString());


这个方法展现的结果是100,但是按照逻辑来说不是应该大多数人所说的类名@哈希码么,test1中没有重写任何toString方法,他的父类就是Object

你的100自动装箱成Integer对象,而Integer对象的哈希码值,它的值即为该 Integer 对象表示的基本 int 类型的数值!你可以在api里找到这句话! 参考技术A Objiect默认就有toString 方法啊追问

你没明白我说的么,现在是显示的结果是 100,不是object中的 类名@哈希码

toString()方法

toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。
结果应是一个简明但易于读懂的信息表达式。建议所有Object子类都重写此方法。

因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。

它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法

总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法.

 1 package arraySortDemo01;
 2 
 3 class Student implements Comparable<Student>{
 4     private String name;
 5     private int age;
 6     private float score;
 7     public Student(String name,int age,float score){
 8         this.name = name;
 9         this.age = age;
10         this.score = score;
11     }
12     public String toString(){
13         return name + "\t" + age + "\t" + score;
14     }
15     public int compareTo(Student stu) {
16         if(this.score >stu.score){
17             return -1;
18         }else if(this.score < stu.score){
19             return 1;
20         } else{
21             if(this.age > stu.age){
22                 return 1;
23             }else if(this.age < stu.age){
24                 return -1;
25             }else{
26                 return 0;
27             }
28         }
29     }
30 }
31 
32 public class CompareDemo01 {
33 
34     public static void main(String[] args) {
35         Student stu[] = {new Student("zhangsan", 20, 90.0f),new Student("lisi", 18, 80.00f)};
36         java.util.Arrays.sort(stu);
37         for(int i=0;i<stu.length;i++){
38             System.out.println(stu[i]);
39         }
40     }
41 }

输出为:

zhangsan 20 90.0
lisi 18 80.0

 

如果去掉toString()方法:

 1 package arraySortDemo01;
 2 
 3 class Student implements Comparable<Student>{
 4     private String name;
 5     private int age;
 6     private float score;
 7     public Student(String name,int age,float score){
 8         this.name = name;
 9         this.age = age;
10         this.score = score;
11     }
12     //public String toString(){
13     //    return name + "\t" + age + "\t" + score;
14     //}
15     public int compareTo(Student stu) {
16         if(this.score >stu.score){
17             return -1;
18         }else if(this.score < stu.score){
19             return 1;
20         } else{
21             if(this.age > stu.age){
22                 return 1;
23             }else if(this.age < stu.age){
24                 return -1;
25             }else{
26                 return 0;
27             }
28         }
29     }
30 }
31 
32 public class CompareDemo01 {
33 
34     public static void main(String[] args) {
35         Student stu[] = {new Student("zhangsan", 20, 90.0f),new Student("lisi", 18, 80.00f)};
36         java.util.Arrays.sort(stu);
37         for(int i=0;i<stu.length;i++){
38             System.out.println(stu[i]);
39         }
40     }
41 }

输出结果为:

[email protected]
[email protected]

以上是关于object的toString方法返回的主要内容,如果未能解决你的问题,请参考以下文章

toString和valueOf

object的toString方法返回

Java中Object.toString()返回的字符串的含义

Object.prototype.valueOf()和Object.prototype.toString()

Object.prototype.toString()

Object.toString()方法返回16进制地址