[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 ...
随机推荐
- Spring Security怎样不让默认的ProviderManager清除密码等信息
<authentication-manager erase-credentials="false"> ... </authentication-manager&g ...
- IE67不兼容display:inline-block,CSS hack解决
追加以下代码:*display:inline.*zoom:1 ;} 块元素变为内联块, IE67不兼容:内联元素变为内联块,所有浏览器都支持 发现问题:当然,变为内联块后,有一个特性就是如果元素换行, ...
- jqGrid 将行的字变成超连接
今天在项目中碰到要将jqGrid中的行做成超连接,请看代码步骤: name: , align: "left", formatter: function (cellValue, op ...
- APNS 证书生成注意事项
APNS证书导出pem: openssl x509 -in aps_development.cer -inform der -out yourCertName.pem APNS证书密钥导出: 先在&q ...
- 查看和设置Oracle数据库字符集
数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集. 客户端字符集环境select * from nls_inst ...
- 用JQ帮你实现动画导航 手风琴是导航与下拉导航
1.手风琴式导航,既可以适用于移动端也可使用与PC端 <!DOCTYPE html> <html> <head> <meta charset="UT ...
- checkbox中把选项文字与小圆圈关联上
跳舞 唱歌 阅读 睡觉 <form><input id="1" type="checkbox" name="hobbies" ...
- Java入门到精通——框架篇之Spring源码分析Spring两大核心类
一.Spring核心类概述. Spring里面有两个最核心的类这是Spring实现最重要的部分. 1.DefaultListableBeanFactory 这个类位于Beans项目下的org.spri ...
- 随学笔记 partAdded
随学笔记: RectangularDropShadow为矩形对象添加阴影,DropShadowFilter可以为任意形状对象添加阴影. BorderContainer和Panel等容器使用的就是Rec ...
- linux漏洞分析入门笔记-bypass_PIE
ubuntu 16.04 IDA 7.0 docker 0x00:漏洞分析 1.ASLR的是操作系统的功能选项,作用于executable(ELF)装入内存运行时,因而只能随机化stack.heap. ...