JavaSE基础——Object类中的常用方法
JAVA学习day11 JavaSE基础——Object类中的常用方法
1. object 类的概述
Object 类是类层次结构的根类,每个类都使用Object类作为父类;所有类(包括数组)的对象都实现这个类的方法。
2. Object 类的hasCode方法
public int hasCode()
● 返回该对象的一个哈希码值。默认情况是根据对象的地址来计算。
● 哈希码值不是对象的实际地址值,可以理解为逻辑地址值。
如下代码就是两个不同对象的哈希码值:
public class Test {public static void main(String[] args) {Object obj = new Object();Object obj2 = new Object();int val = obj.hashCode();int val2 = obj2.hashCode();System.out.println(val);System.out.println(val2);}
}
3. Object类中的getClass()
public final class getClass()
● 返回Object的运行时类
代码演示:
public class Test2 {public static void main(String[] args) {Object o = new Object();Object o1 = new Object();Object aClass = o.getClass();Object aClass1 = o1.getClass();boolean b = (aClass == aClass1);System.out.println(b);}
}
4. Object 类中的toString 方法
public String toString()
● 返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
● Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
代码演示:
public class Test3 {public static void main(String[] args) {Person p1 = new Person("张三", 21);Person p2 = new Person("李四", 32);System.out.println(p1.toString());System.out.println(p2.toString());}
}
class Person{String name;int age;public Person(String name, int age){this.name = name;this.age = age;}//重写toString方法@Overridepublic String toString(){return "姓名:"+this.name+" "+"年龄:"+this.age;}
}
重写之前执行结果:
重写之后执行结果:
5. Object 类中的equals方法
public boolean equals(Object obj)
● 指示其他某个对象是否与此对象“相等”。
● 对于任何非空引用值 x,x.equals(null) 都应返回 false。
● Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
代码演示:
public class Test4 {public static void main(String[] args) {Student stu = new Student("小明", 22);Student stu2 = new Student("小住", 22);boolean b = stu.equals(stu2);System.out.println(b);}
}
class Student extends Person {public Student(String name, int age) {super(name, age);}@Overridepublic boolean equals(Object obj) {if (!(obj instanceof Student)) {return false;}if(obj == null){return false;}if (obj == this){return true;}Student stu = (Student) obj;return this.name == stu.name && this.age == stu.age;}
}
执行结果:
6. Object 类的clone 方法
protected Object clone() throws CloneNotSupportedException
● 创建并返回该对象的一个副本。
● 如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。
● clone 方法的权限修饰符是protected ,子类要重写该方法后才能使用。
代码演示:
public class Test5 {public static void main(String[] args) throws CloneNotSupportedException {Teacher teacher = new Teacher("张飞", 36);Teacher teacher1 = (Teacher) teacher.clone();teacher1.name = "刘备";teacher1.age = 39;System.out.println(teacher);System.out.println(teacher1);System.out.println(teacher.equals(teacher1));}
}
class Teacher extends Person implements Cloneable{public Teacher(String name, int age) {super(name, age);}@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}
执行结果:
可见复制的对象和被复制的对象都是独立存在的,两者有不同的内存地址。
JavaSE基础——Object类中的常用方法相关推荐
- Object类中的常用方法
这里写目录标题 一,equals()方法 二,toString()方法 三,finalize()方法 四,hashcode()方法 一,equals()方法 1,所有类都从Object类中继承equa ...
- JavaSE基础——常用类1
JavaSE基础--常用类1 一.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它当中描述的所有方法子类都可以使用. 如果在类的声明中没有显式地使用exte ...
- JavaSE之Object类
目录 Object类的概述 Object类中常用方法介绍 1.hashCode()方法 2.getClass()方法 3.toString()方法 4.equals()方法 Object类的概述 Ob ...
- Object类中的方法
基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Obje ...
- python中的object是什么意思_Python object类中的特殊方法代码讲解
python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...
- Thread和Object类中关于线程的相关方法
Thread和Object类中线程的7个重要方法概览 类 方法名称 简介 Thread sleep相关 相关表示sleep所有的重载方法,参数不同,实际作用大同小异 Thread join() 等待其 ...
- object类中的equals与自定义equals方法详解
object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...
- String类中的equals方法与Object类中的equals方法的不同点
1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...
- 重写Java Object类中的equals()方法
Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...
- wait/notify/notifyAll在Object类中
wait/notify/notifyAll在Object类中 因为我们在使用synchronized锁 对象锁可以是任意对象,所以wait/notify/notifyAll需要放在Object类中. ...
最新文章
- 声音信标发出白噪声和发出chirp信号的对比测距说明
- python支持的数据类型list_Python基本数据类型之list
- 程序内存区域分配(五个段)--终于搞明白了
- MySQL的优化与执行
- Java 中的多线程你只要看这一篇就够了
- Dll 导出类 [示例代码]
- 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...
- 软考路:2021年系统架构设计师之考试
- Oracle - TRUNC, ROUND, CEIL, FLOOR
- 健康窈窕美女第一课 减肥vs早餐四个关键问题。
- DevOps和持续交付
- 美味爱读提供一种崭新的阅读方式
- windows 2012 抓明文密码方法
- 2021年电力电缆作业考试题库
- AEJoy —— 表达式之模拟超越与反弹(五)【JS】
- windows屏幕放大镜
- Python爬虫系列之爬取美团美食板块商家数据,选困的福利
- input标签用法与功能全面解析
- http请求 405错误 方法不被允许 (Method not allowed)
- 决策树可视化以及数据所要的处理(查漏补缺)
热门文章
- 反射方式,获取出集合ArrayList类的class文件对象
- 布局--------动态添加 相对布局
- 极性大小判断技巧_别愣着了,来分析分析正极性半波整流电路!
- tomcat依赖导入步骤_将tomcat源码导入eclipse
- 拓端tecdat|R语言用RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
- 拓端tecdat|R语言广义相加(加性)模型(GAMs)与光滑函数可视化
- 拓端tecdat|R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析
- 拓端tecdat|Tableau 数据可视化:探索性图形分析新生儿死亡率数据
- 拓端tecdat|R语言用多重插补法估算相对风险
- 拓端tecdat|R语言文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究