您的位置:首页 > 编程语言 > Java开发

JAVA笔记十一(44-45 equals函数、hashcode()与toString())

2013-06-27 17:45 405 查看

四十四、equals函数的作用

1.equals函数在什么地方

包含在Object类中,Object是所有函数的父类,所以所有的类都包含equals函数。

2.equals函数的作用

“==”操作符的作用:对于对象,==表示两个引用指向同一个对象。

equals的作用,是比较两个对象是否相同。

在通常情况下,对象内容相同的条件:1)对象的类型相同(可以使用instanceof操作符进行比较); 2)两个对象的成员变量的值完全相同;

3.复写equals函数的方法

class User{
String name;
int age;

User(String name,int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
if(this == obj){
return true;
}
boolean b = obj instanceof User;
if(b){
User u = (User)obj;
if(this.name.equals(u.name) && this.age == u.age){
return true;
}
else{
return false;
}
}
else {
return false;
}
}
}


class Test{
public static void main(String[] args){
User a = new User("zhangsan",20);
User b = new User("lisi",20);
User c = a;
User d = new User("zhangsan",20);

//比较两个引用是否指向同一个对象。
System.out.println(a == c);
System.out.println(a == d);

//比较两个引用指向的对象的内容是否相等。
System.out.println(a.equals(c));
System.out.println(a.equals(d));
System.out.println(a.equals(b));
}
}
运行结果:



实际开发过程中,通常利用开发工具直接生成复写equals方法的代码。

四十五、hashcode()与toString()

1、hashCode()的作用

什么是Hash算法:任意长度的数据,通过hash算法,得到一个唯一的散列值。(应用:加密/数据加密)

用于存储数据,用散列值与数据存储位置建立关联,寻找数据时,可以根据散列值找到数据。提高查找效率。

深入了解,多读一些资料。算法与数据结构。

2.hashCode()的实现方法

hashCode是Object中的函数,所有类都有hashCode()方法。放回值为整型,叫做哈希码。

在sun公司的规定中,如果两个对象用equals相比,是相等的,那么它们用hashCode()计算出来的哈希码也是一样的。

如果

返回值为一个整型。

3.toString()的作用

toString()是Object中的函数,所有类都有toString函数。

作用:把一个无论什么类型的对象,转换成一个String字符串,使程序有更好的可读性。便于开发者调试。

4.toString()的实现方法

class User{
String name;
int age;

User(){
}

User(String name,int age){
this.name = name;
this.age = age;
}

public String toString(){
String result ="age:"+ age + ",name:" + name;//把成员函数的值打印出来。
return result;

}
}


import java.util.*;

class Test{
public static void main(String[] args){
User u = new User("zhangsan",20);

System.out.println(u);//  打印对象时,先调用toString方法,然后把返回的值打印出来。
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: