Java toString解析

Java toString解析

咱们知道,Java全部的类都是Object类的派生类,toString就是Object类中的一个方法。java

咱们看看它的源代码。ide

public String toString()
{
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

能够看见,toString方法返回的是一个字符串。该字符串由 类名+ "@" + 此对象的哈希码(无符号16进制)code

当咱们没有重写Object类中的toString方法时,在调用System.out.println()直接传入对象名的时候,会自动调用对象的toString方法,打印出上述的内容。对象

如:字符串

class Man{
	public Man() {
		
	}
}


public class Test {
	public static void main(String[] args) {
        
		  Man Terry = new Man();
		  System.out.println(Terry);
        
	}
}

// 结果
// Man@8efb846

既然咱们知道在方法或定义,强制类型为String时,直接使用对象名会隐性调用toString方法,那么咱们天然能够重写toString方法实现本身的目的。get

import java.util.*;

class Man{
	static int code = 0;
	private int number = -1;
	public Man() {
		code++;
		number = code;
	}
	
	@Override
	public String toString() {
		return "I am No." + number;
	}
}


public class Test {
	public static void main(String[] args) {
		  Man Terry = new Man();
		  Man Tom = new Man();
		  Man Mary = new Man();
		  System.out.println(Terry);
		  System.out.println(Tom);
		  System.out.println(Mary);
	}
}

// 结果
/*
   I am No.1
   I am No.2
   I am No.3
*/
相关文章
相关标签/搜索