[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 ...
随机推荐
- java将文本写入本地硬盘
注意:首先要在E盘创建qaz.txt文本文件.然后执行代码写入. public static void main(String[] args) { SecurityCodeUtils scu = ne ...
- DataGuard具体搭建环节
在上一篇blog中,详细介绍DataGuard实现的原理,本篇介绍DataGuard的具体搭建过程. 主库打开日志,并强制force logging SQL>shutdown immediate ...
- oracle 操作实例(一)----redolog 损坏恢复
一,实验前的准备 数据库全备保证自己没成功还能补救一下 vim full.sh export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACL ...
- 基于memcache的缓存机制的6个指令
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...
- Manacher算法(马拉车)
学习博客:https://www.cnblogs.com/love-yh/p/7072161.html 首先,得先了解什么是回文串(我之前就不是很了解,汗).回文串就是正反读起来就是一样的,如“abb ...
- sqlplus连接oracle语法
sqlplus文件在product\11.2.0\dbhome_1\BIN目录下. 连接语法:用户名/密码@ip/服务名
- sql server 远程备份 bak 删除
前言: 管理一个公司的一个服务器,最近有一些维护SQLserver数据库活弄,写下防止忘了. 因为公司采用SQL\Redis\MongoDB共用,SQL用来存储基础的结构\权限\等一些杂七杂八的东西. ...
- postgres formencode.api.Invalid
错误提示: Invalid: expected an int in the IntCol 'geom', got <type 'str'> '010100000007EBFFFC3A611 ...
- Linux文本处理工具
Linux文本处理工具 Linux中熟练的使用文本处理工具非常的重要, 因为Linux在设计的时候是采用一切皆文件的哲学的, 甚至连计算机中的配置也都使用伪文件系统来表示, 要查询里面的内容就是对文件 ...
- 数据库中存放着HTML并附带样式,如何在界面上对已有的样式进行修改
在工作中遇到这样一个问题,数据库中存放着HTML代码,并且还带有样式,我要在界面上修改他已经写好的样式,例如把这个字段的字体改成微软雅黑,数据库中对应字段内容如下图 在界面面上是直接把上图这段HTML ...