Object的toString方法

package cn.itcast.object;
/*
找对象的方式:
	
方式一: 自定义类,通过自定义类创建对象。

方式二:sun定义好了很多的类,我们只需要认识这些类即可通过这些类创建对象为我们所用。
 
 
Object 类:

Object类是所有类的终极父类。



Object类常用的方法:
	toString()              返回的字符串是用于描述该对象的
	equals(Object obj)      判断两个对象是否为同一个对象, 默认比较 的是内存地址。
	hashCode()          	返回一个对象的哈希码值。哈希码 值可以看做一个对象的内存地址。
	
java规范: 一般我们在重写equals方法的时候,我们都会重写hashCode方法.	
	
	

查看源代码的方式:	
	
	方式一: 按住ctrl+ 鼠标单击
	
	方式二: 按下f3
 */

class User{
	
	int id;
	
	String userName;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public User(int id, String userName) {
		super();
		this.id = id;
		this.userName = userName;
	}
	
	
	/*
	为什么要重写toString方法? 因为直接输出一个user
	对象的时候输出的是该对象的toString方法返回 的字符串,该字符串是Object的toString方法返回的不能
	满足我目前的需求,所以则进行了重写。

	 */
	@Override
	public String toString() {
		return "身份证:"+ this.id+" 姓名:"+ this.userName;
	}
	
	//如果一个人的身份证编号一致,那么则为同一个人。
	@Override
	public boolean equals(Object obj) {
		User user = (User)obj;
		return this.id== user.id;
	}
	
	
	@Override
	public int hashCode() {
		return this.id;
	}
	

	
}





public class Demo1 {

	public static void main(String[] args) {
		/*
		Object o = new Object();
		System.out.println("toString: "+ o.toString());  //默认情况返回的字符串:完整类名+ @+ 哈希码
		System.out.println(o); //疑问: 直接输出一个对象的时候输出的字符串竟然与toString方法返回的字符串一致?
		
		
		User user = new User("admin","123");
		System.out.println(user); //直接输出一个对象,其实就是输出该对象的toString方法返回的字符串。
		User user2 = new User("guest","root");
		System.out.println(user2);
		
		
		
		但是在现实生活中,如果一个人的身份证编号一致,那么则为同一个人。
		*/
		User user1 = new User(110,"狗娃");
		User user2 = new User(110,"陈福狗");
		System.out.println("是同一个对象吗?"+ user1.equals(user2));
		System.out.println("哈希码1:"+ user1.hashCode());
		System.out.println("哈希码2:"+ user2.hashCode());
		
	

	
	}
	
	

	
}






 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值