1,equals方法

(1)什么时候需要重写?

如果希望不同内存但相同内容的两个对象equals时返回true,则需要重写equals

(2)怎么重写?

class A
{ public int i;
pulic A(int i)//构造函数
{this.i=i;
}
public boolean equals(Object obj)//重写equals
{A aa=(A)obj;
if(this.i==aa.i)
return true;
else
return flase;
}
}
public class testEquals{
public staric void main(String[] args){
A aa1=new A(10);
A aa2=new A(10);
System.out.println(aa1.equals(aa2));
}
}

(3)注意问题:

String类系统已经重写equals了,不必再重写;

另外区分equals和==

public class extendsPrivateTest {
public static void main(String[] args){  
    String str1=new String("China");
    String str2=new String("China");  
   System.out.println(str1.equals(str2));
   System.out.println(str1==str2);
    String str3="China";
    String str4="China";  
   System.out.println(str3.equals(str4));  
   System.out.println(str3==str4);  } }

str1和str2放在堆里

true//equals已经被系统重写

false

str3和str4是放在数据区,都是指向一个数据

true

true

2.toString方法

(1)为什么需要重写toString?

Object类中的toString方法返回的是类的名字和该对象的哈希码组成的一个字符串,例,A@deced

而我们实际想用System.out.printf(类对象名)输出该对象的toStringd()方法返回的字符串不是上述的时,就必须重写toSring方法。

(2)怎么重写toString方法?

注意:为了实际需要,建议子类重写从父类Object继承的toString()方法

class Point{
private int i,j;
puvlic Point(int i,int j){
this.i=i;
this.j=j;
}
public String toString(){
return "["+i+","+j+"]";
}
}
public class testtoString{
public static void main(String[] args){
Point p1=new Point(1,3);
System.out.println(p1);
}
}

Java 中equals和toString()方法重写的更多相关文章

  1. java中equals和hashCode方法随笔二

    前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的 ...

  2. java中equals与hashCode的重写问题

    这几天有一个朋友问我在重写equals和hashCode上出现了问题,最后我帮她解决了问题,同时也整理出来分享给大家 现上Object的equals与HashCode的代码 public boolea ...

  3. java中equals和hashCode方法的解析

    解析Java对象的equals()和hashCode()的使用 前言 在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个.在多 ...

  4. Java中equals和hashcode的区别?

    Java中equals和hashcode方法是在Object对象中的,所以每个对象都有这两个方法,大多数时候我们为了实现特定需求需要重写这两个方法 equals和hashcode方法常用在同一个类中用 ...

  5. java中equals方法和==的用法

    java中equals方法的用法以及==的用法(参考一)equals 方法是 java.lang.Object 类的方法.两种用法说明:(1对于字符串变量来说,使用“==”和“equals()”方法比 ...

  6. Java中equals与==和comparaTo的区别

    一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long doubl ...

  7. java中equals和==的区别 (转)

    java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...

  8. Java中Set的contains()方法

    Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...

  9. 深入探究Java中equals()和==的区别是什么

    目录 相等判断符"==" "=="判断基本类型数据 "=="判断引用类型数据 相等判断方法equals() 思考:为什么要设计equals( ...

随机推荐

  1. [HDOJ3308]LCIS(线段树,区间合并)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3308 题意:给定n个数,两个操作: U A B:将位置A的数值改成B Q A B:查询[A,B]内最长 ...

  2. Oracle ——————建表、select、视图

    --建表 -- 关键字 : create -- 用法 : /* create table table_name ( lie1_name 数据类型 是否为空, lie2_name 数据类型 是否为空, ...

  3. JDBC操作Oracle数据库——实际操作过程中的小总结

    1.对数据库中,表的每一行数据记录的增删改查 增:insert into 表名 values() 删:delete 表名 where 条件(id=?) 改:update 表名 set 列名=? whe ...

  4. 11.Events

    1.A type that defines an event member allows the type (or instances of the type) to notify other obj ...

  5. STL--set

    set-概述: 集合Set是一个容器,它其中所包含的元素的值是唯一的.集合中的元素按一定的顺序排列,并被作为集合中的实例. 一个集合通过一个链表来组织,其具体实现采用了红黑树的平衡二叉树的数据结构. ...

  6. Java 实现二分法查找算法

    算法 假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别指向数据的上界,中间和下界,mid=(front+end)/2. 1.开始令 ...

  7. <<易货>>项目Postmortem结果

    设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 一开始想做的事情还是太多,没有形成整个app的核心功能,浪费了很多时间. 是否有充足的时间来做计划? 有 ...

  8. 16 shell调试技术

    trap 命令 基本格式: trap command sig1 sig2 ... sigN    有3种信号可以捕获:    EXIT : 从函数中退出, 或整个脚本执行完毕    ERR:   当一 ...

  9. js原型链闭包作用域链-Tom

    1.原型相当于Java.C++里面的父类,由封装公有属性及方法而产生,子类可以继承. 原型继承实现(函数的原型属性指向原型函数一个实例对象,函数的原型的构造函数指向函数本身) 1)eg:原型链 fun ...

  10. 关于mysql的基础知识

    一.数据库的简介 什么是数据库? 数据的仓库,如:在atm的实例中我们创建一个db目录称之为数据库 什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 他们 ...