一、Object类
1、Object类基本特性
Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法。
如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。
(Object类位于java的lang包(核心包)内)
注:Object所有方法子类都有,可以直接用
2、示例
public class Person {
...
}
//等价于:
public class Person extends Object {
...
}
二、toString()方法
Object类中定义有public String toString()方法,其返回值是 String 类型。
Object类中toString方法的源码为:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
根据如上源码得知,默认会返回“类名+@+16进制的hashcode”。在打印输出或者用字符串连接对象时,会自动调用该对象的toString()方法。
示例:toString()方法测试和重写toString()方法
/**
*
* @Title: TestOverrideToStringMethod.java
* @Package test
* @Description: TODO(重写toString()方法)
* @author Charlie
* @date 2019年1月23日
* @version V1.0
*/
package test;
/**
* @ClassName: TestOverrideToStringMethod
* @Description: TODO(重写toString()方法)
* @author Charlie
* @date 2019年1月23日 上午11:27:40
*
*/
public class TestOverrideToStringMethod {
/**
* @Title: main
* @Description: TODO(重写toString()方法)
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
Person p = new Person();
p.name = "Charlie";
p.age = 24;
System.out.println("info:" + p);
TestOverrideToStringMethod t = new TestOverrideToStringMethod();
System.out.println(t);
}
}
/**
*
* @ClassName: Person
* @Description: TODO(人类)
* @author Charlie
* @date 2019年1月23日 上午11:31:02
*
*/
class Person{
String name;
int age;
public String toString() {
return name + ",年龄:" + age;
}
}
运行结果
注:可通过Ctrl+鼠标左键,点击方法名查看源码,有助于学习。