[18/11/30] toString()方法 和 equals() 方法
一、 toString() 方法
Object类中定义有public String toString()方法,其返回值是 String 类型 默认: return getClass().getName() + "@" + Integer.toHexString(hashCode());
默认会返回“类名+@+16进制的哈希码”。在打印输出或者用字符串连接对象时,会自动调用该对象的toString()方法。
代码示例:
//测试toString()方法,属于Object类 位于Java.lang包中 核心包 class Person
{
String name;
int age;
public Person(String name,int age){ //构造方法
this.name=name;
this.age=age; }
public String toString(){ //重写toStirng 方法
return "名字:"+name+" 年龄:"+age;
}
}
public class Test_1130_01 // 默认继承于 Object类
{ public static void main(String[] args) //主方法
{
Test_1130_01 to=new Test_1130_01(); //toString() 默认会返回“类名+@+16进制的hashcode”。
System.out.println(to); //等价于 System.out.println( to.toString() ); System.out.println("------------");
Person p=new Person("李白",18);
System.out.println(p); //默认调用toString 会输出对象p的信息 } public String toString() //重新toString()方法
{
return "测试Object对象"; //输出时调用重写后的方法,而不是默认方法 }
}
二、 equals() 方法
Object类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。比如,我们在公安系统中认为id相同的人就是同一个人、学籍系统中认为学号相同的人就是同一个人。
Object 的 equals 方法默认就是比较两个对象的hashcode,是同一个对象的引用时返回 true 否则返回 false。但是,我们可以根据我们自己的要求重写equals方法。
x.equals (y) ,当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回 true 否则返回 false。
代码示例:
//测试 equals方法
class User
{
int id;
String name;
String pwd;
public User(int id,String name,String pwd){ //构造方法
this.id=id;
this.name=name;
this.pwd=pwd;
} public boolean equals(Object obj){//重新equals()方法 只要id相等则认为相等
if(this==obj)
return true;
if(obj==null) //判断对象是否为空
return true;
if(getClass()!=obj.getClass()) //判断类型是否相等
return true;
User other=(User)obj; //强制转换成User类
if(id!=other.id) //核心 判断id是否相等
return false;
return true;
}
} public class Test_1130_02
{
public static void main(String[] args)
{
User u1=new User(1001,"李白","1234");
User u2=new User(1001,"李黑","1234");
System.out.println(u1==u2);//“==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。
System.out.println(u1.equals(u2));//equals 方法,重新后会输出true }
}
[18/11/30] toString()方法 和 equals() 方法的更多相关文章
- java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- Object、String、数组的 toString() 方法和 equals() 方法及java.util.Arrays
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- JavaSE-28 hashCode()方法、equals()方法和==相关概念
概述 Java中,Object类是所有类的基类:如果一个类没有明确继承其他已定义的类,则默认继承Object类. Object类提供了以下方法,对于其他方法,请参考前期专题描述. hashCode() ...
- Object类的toString方法和equals方法
Object类 概述 java.long.Object 类是java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终的父类就是Object 类Object是类层 ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- JAVA笔记7-Object类之toString方法和equals方法
位于rt.jar\java\lang\Object.class Object类是所有Java类的根基类(Java中只有一个根基类,C++中有多个).如果在类声明中未使用extends关键字指明其基类, ...
- 【JAVA】笔记(6)--- toString方法;equals方法;finalize方法;package与import;内部类;
toString: 1.每创建一个类时,都要重写 toString 方法,这是敲代码的基本素养: 2.重写规则:简单明了: 3.String 类中也有toString方法(SUN公司写的): equa ...
- 浅谈Java中的hashcode方法以及equals方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native int hashCode(); 根据这个 ...
- Day09_43_Set集合_HashSet_02(HashCode方法 与 equals方法 )
HashSet - 向Hash表中添加元素的过程? 1. 先调用将要被存储的值key的HashCode方法得出Hash值,如果该Hash值在现有Hash表中不存在,那么直接加入元素. 2. 如果该Ha ...
随机推荐
- Hadoop升级
1.停止所有MR任务 stop-mapred.sh 2.检查HDFS hadoop fsck / -files -blocks -locations > dfs-v-old-fsck-.log ...
- 【python爬虫】利用selenium和Chrome浏览器进行自动化网页搜索与浏览
功能简介:利用利用selenium和Chrome浏览器,让其自动打开百度页面,并设置为每页显示50条,接着在百度的搜索框中输入selenium,进行查询.然后再打开的页面中选中“Selenium - ...
- 1.2 js基础
1.onchange 99%用到select上边. 2.js是干什么的,修改css样式和属性 3.选项卡步骤 1.获取元素 2.循环给按钮加自定义属性 3.循环给按钮加事件 4.封装 ...
- Flask 编写http接口api及接口自动化测试
片言 此文中代码都是笔者工作中源码,所以不会很完整,主要摘常见场景的api片段用以举例说明 另:此文主要针对自动化测试人员,尤其有python基础阅读更佳. 笔者使用 python3.6 + post ...
- JS常用的设计模式(6)——桥接模式
桥接模式的作用在于将实现部分和抽象部分分离开来, 以便两者可以独立的变化.在实现api的时候, 桥接模式特别有用.比如最开始的singleton的例子. var singleton = functio ...
- 3、Angular2 Input
3.理解@input
- HttpServletRequest的获取客户端真实IP
摘自:http://chenyoulu.diandian.com/post/2012-11-14/40042540378 request方法客户端IP: request.getRemoteAddr() ...
- XML再深入
XML 命名空间 XML 命名空间提供避免元素命名冲突的方法. 使用前缀来避免命名冲突 在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免. 该 XML 携带某个 HTML 表格和某件家具的信 ...
- 1.HTML小结
HTML 基本文档 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- 【数据库】8.0 MySQL入门学习(八)——创建并使用数据库、获得数据库和表的信息
1.0 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; 每台机器上的数据库列表是不同的,但是很可能有mysql和test数据库.mysql是必需的 ...