JAVA常见对象Object

本文详细解读了Java中类层次结构的根类Object,重点讲解了hashCode(), equals(), 和 toString() 方法的实现原理及在类Student中的重写应用,通过实例展示了如何比较对象的哈希码、判断对象相等以及友好的字符串展示。
摘要由CSDN通过智能技术生成

类层次结构的根类

所有类都直接或间接的继承自该类

构造方法:      

public Object{}

hashCode()方法,返回此对象的哈希码值

hashcode就是一个地址值

public class dd{
    public static void main(String[] args) {
        Student s=new Student("张三",23);
        Object obj=new Object();
        int hashcode =obj.hashCode();
        System.out.println(hashcode);
        System.out.println(s.hashCode());
    }
}

getClass方法,返回此对象的运行时类

package com;


public class hello {
	public static void main(String[] args) {
		Student s=new Student("张三",23);
		//Class clazz =new Class();
		Class clazz=s.getClass();                   //获取该对象的字节码文件
		String name =clazz.getName();               //获取名称
		System.out.println(name);
	}
}

运行结果 

toString():

package demo;

import com.Student;

public class ToString {

	public static void main(String[] args) {
		Student s=new Student("张三",23);
		//String str=s.toString();
		//System.out.println(str);


        //System.out.println(s.toString);

        
        System.out.println(s);

        //如果直接打印对象的引用,会默认调用toString()方法

	}


}

 

运行结果:

    
/*    左边:类名
    中间:@
    右边:hashCode的十六进制表现形式
    这么写没有什么实际意义
    toString方法的作用:可以更方便的显示属性值
*/

在Student中重写方法toString

public String toString() {                     
        
	return "我的姓名是"+name+"我的年龄是"+age;           
}                                              

equals():比较返回true or false要重写方法,否则直接使用比较的是地址值,要注意的是,重写是传进去的是父类对象,不能调用子类中特有的属性,需要向下转型

import com.Student;

public class ToString {
	
	public static void main(String[] args) {

	Student s1=new Student("张三",23);
	Student s2=new Student("张三",23);
	
	boolean b=s1.equals(s2);    //比较两个对象是否相等
	
	System.out.println(b);

	}

重写代码部分

	@Override                                                                            
	public boolean equals(Object obj) {                                                  
		// TODO Auto-generated method stub                                               
		Student s=(Student)obj;                                                          
		return this.name.equals(s.name) && this.age==s.age;                              
	}                                                                                    

运行结果:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值