javaSE进阶学习记录:1.3 Object

Object是所有类的超类,所有的类都直接或间接的继承了Object。每一个子类都会从父类继承属性或者方法,但是Java是一个单继承语言,子类除了可以用父类的东西,也可以从超类中获得,所有Object中所有的方法,子类都可以用。

 方法摘要:(个人理解)

protected  Object

clone()

对象克隆,很少使用

 boolean

equals(Object obj)

用于判断两个对象的内容是否一样

protected  void

finalize()

当对象被垃圾回收器回收时,会执行对象的finalize()发方法,但是垃圾回收器在什么时候回收这个对象不确定,即这个方法的执行时间不确定,一般不用

Class<?>

getClass()

返回对象的运行时类对象,可以简单的理解为返回对象的类的字节码文件

 int

hashCode()

返回该对象的哈希码值

 void

notify()

在线程中用于唤醒等待中的 线程

 void

notifyAll()

唤醒在此对象监视器上等待的所有线程

 String

toString()           

把对象转换成字符串

 void

wait()

在多线程中,让线程等待


toString()

Person类

public class Person {

	String name;
	int age;
	String gender;
	public Person(String name, int age, String gender) {
		super();
		this.name = name;
		this.age = age;
		this.gender = gender;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "姓名:" + name + "年龄:" + age + "性别:" + gender;
	}
	
	//重写toString
	
	
}

Test01类

public class Test01 {

	public static void main(String[] args) {
		Person per = new Person("张三",21,"男");
		System.out.println(per);
		/*
		 * 运行结果为:com.LearnTest02.day01.Person@27973e9b
		 * 一串地址
		 * 
		 * 因为:
		 * ①使用System.out.println(per);打印一个对象,在println()方法中,会先把对象转换为字符串再输出
		 * 		调用了String.valueOf(x)方法把对象转换为字符串
		 * ②在String类valueOf(x)方法中调用了对象的toString()把对象转换为字符串
		 * ③toString是从Object类继承来的,在Object类中的toString()返回以下内容:
		 * getClass().getName() + "@" + Integer.toHexString(hashCode())
		 * com.LearnTest02.day01.Person@27973e9b
		 * 
		 * 所以:
		 * 使用System.out.println(per);打印一个对象时,会调用对象的toString()方法
		 * 
		 * 解决方法:
		 * 重写toString方法
		 * 
		 */
	}
	
}

重写toString方法前

结果为:

重写toString方法后

结果为:

总结:

作用:把对象转换成字符串

应用场景:System.out.println(per);打印per对象时,会调用对象的toString()方法

                  当打印对象时,想显示对象的各个字段值,需要重写toString()方法

注:打印一个类的对象时,如果显示的不是完整的  类名@十六进制形式 时,肯定重写了toString方法()

                                               getClass().getName() + "@" + Integer.toHexString(hashCode())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值