首页 > 其他分享 >2023年5月20日,重写Object类

2023年5月20日,重写Object类

时间:2023-05-21 10:05:54浏览次数:44  
标签:20 String 对象 Object equals Student 2023 class

Object类

/**
	 * 知识点:Object类
	 * 含义:该类是所有类的超类/基类
	 * 理解:如果一个类没有明确继承的父类,都默认继承Object
	 * 
	 * equals():判断两个对象内存地址是都相同
	 * 		public boolean equals(Object obj){
	 * 			return (this == obj);
	 * 		}		
	 * 
	 * getClass():获取类的class对象
	 * 		理解:
	 * 			使用到一个类(new对象、调用静态属性/方法),
	 * 			JVM就会将该类的class文件加载到方法区中,
	 * 			并在堆内存中创建class对象,
	 * 			class对象作为class文件的访问入口(想使用到class文件,就必须找到对应的class对象)
	 * 			注意:
	 * 				1.class文件中包含了该类所有的信息(有几个成员属性、有几个静态属性、有几个构造方法、有几个成员方法、有几个静态方法....)
	 * 				2.该类的class文件只加载一次,该类的class对象在内存中只有一个
	 * 
	 * hashCode():获取对象的hash值
	 * 			注意:
	 * 				1.hash值等于内存地址+散列算法,算出来的一个int值,该int值表示对象在hash表中的下标
	 * 				2.hash值不等于内存地址
	 * 
	 * toString():获取对象的字符串表示
	 * 		public String toString(){
	 * 
	 * 					//getClass().getName() -- 获取class对象再获取名 -- 全路径(包名+类名)
	 * 					//Integer.toHexString(hashCode()) -- 获取对象的hash值的十六进制表示
	 * 				   java.lang.Object		   @ 	15db9742
	 * 			return getClass().getName() + "@" + Integer.toHexString(hashCode());
	 * 		}
	 * 		
	 */

深入Object类

equals():判断两个对象的内存地址是否相同

package com.qf.test01;

public class tet01 {
    /**
     * 深入Object
     * @param args
     * equals():判断两个对象的内存地址是否相同
     *      标杆作用:判断两个对象是否相同。 不同的子类判断对象之间是否相同的规则是不一样的,所以子类重写equals()即可
     *
     */
    public static void main(String[] args) {
        Student stu1 = new Student("张三", '男', 18, "001");
        Student stu2 = new Student("李四", '女', 18, "002");
        Student stu3 = new Student("张三", '男', 18, "001");
        System.out.println(stu1.equals(stu2));//false
        System.out.println(stu1.equals(stu3));//true
    }
}
@Override
    public boolean equals(Object obj) {
        //先判断两个对象的内存地址是否相同,如果内存地址都相同,肯定就是同一个对象
        if (this == obj){
            return true;
        }
        //对象的向下转型(父类类型 转 子类类型)
        Student stu = (Student) obj;

        if(this.id.equals(stu.id)){
            return true;
        }
        return false;
    }

2023年5月20日,重写Object类_内存地址

getClass():获取该类的class对象

hashCode():获取对象的hash值

toString():获取对象的字符串表示(标杆作用:不同的子类有着不同的属性,子类重写toString()即可)

String底层

/**
	 * 知识点:String的equals()和toString()底层原理
	 * 
	 * 理解:String表示字符串类,实际上就是把字符串转换为字符数组去存储
	 * 
	 * String的equals():重写了Object类的equals方法,判断原理是先判断两个字符串中的字符数组的长度是否相同,相同再判断字符的Unicode
	 * String的toString():重写了Object类的toString方法,拼接字符数组
	 */

标签:20,String,对象,Object,equals,Student,2023,class
From: https://blog.51cto.com/u_15098423/6318611

相关文章

  • 2023-5-20
    DDL新的新的身份证,然后去考了英语四级口语(本来想着要是师生服务中心不上班就直接翘考只能说考试体验很差,给我整无语了,不过看到朋友了(然后回宿舍练了一会口琴,玩了两三个小时NoMan'sSky也就过去了。根据DDL的数量来看,下两周应该不会玩了。什么是什么然后在东一楼发生了若......
  • 2023.5.20
    今天学习了yolov5技术,但是配置还没弄好。哎。具体学习连接:yolov5环境准备  ......
  • 23-05-20 刷题
    练习英文描述算法88.MergeSortedArray-LeetCode【easy】classSolution{publicvoidmerge(int[]nums1,intm,int[]nums2,intn){//twopointers,initiallyi,jpointstothelastnumberofthearray(m-1,n-1)//usektorecordth......
  • 2023.5.20——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午参观君乐宝企业,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 520-5 翻倒数
    一、问题描述:我们看到,把数字0-9翻倒,有的数字就认不出来了,比如2、3、4、5、7;有的数字看上去没什么大的变化,比如0、1、8;还有的数字变成了另一个数,比如6变成9,9变成6。给定一堆数字,请你判别每个数有没有可能是另一个数字翻倒形成的。输入格式:输入在第一行中给出一个正整......
  • 520就这样了
    520-3不要怕,爱!!!古代少女有了心上人时,会悄悄折一条树枝,揪那枝上的叶子,揪一片叶子念一句“爱我”,再揪一片念一句“不爱我”……这样揪落最后一片叶子的时候,看看是停在“爱”还是“不爱”。本题就请你根据枝条上叶子的片数,告诉你的用户应该从“爱”还是“不爱”开始,最后一定停......
  • C/C++程序设计课设题[2023-05-20]
    C/C++程序设计课设题[2023-05-20]ATM仿真系统-薛景背单词-叶水仙-理科实验班电信优惠套餐推荐系统的设计与实现-朱立华-通信工程多媒体文件管理及检索系统-刘林峰-广播电视工程公交路线自动化选择系统实现-张勤-测控技术与仪器基于朋友圈的商品推荐-汪云云-自动化基于数据......
  • day75(2023.5.20)
    1.通过Cookie实现客户端与服务端会话的维持 运行结果: 2.Cookie总结3.HttpSession对象的特点 4.HttpSession对象的创建 运行结果: 5.HttpSession对象的使用 运行结果:  6.HttpSession的销毁方式 运行结果: 在IE浏览器中......
  • 5.20
    代码时间:2h代码量(行):3百行相关事项:今天再次进行web实验四,通过使用JavaMVC模式设计简单的数据库管理系统,巩固使用JDBC技术访问数据库的方法,学习使用Java语言对服务器端进行编程,深入理解MVC网站设计模式的基本概念和框架结构。已经成功完成实验。。。。 今天的学校人格外的少......
  • 今天520,来个烟花吧
    '''name:圣诞树+烟火author:Babysen''' importturtleastimportrandomimportthreadingimporttimeimporttkinterastkimportmathfrommathimportcos,sin,atan,sqrtimportnumpyasnp t.screensize(bg='black')#定义背景颜色 #心......