==比较的是地址

equals比较的是内容.

所以要重写object的equals方法.

public class TestEquals {public static void main(String[] args) {Cat c1 = new Cat(1, 2, 3);Cat c2 = new Cat(1, 2, 3);System.out.println(c1 == c2);System.out.println(c1.equals(c2));String s1 = new String("hello");String s2 = new String("hello");System.out.println(s1 == s2);System.out.println(s1.equals(s2)); }
}class Cat {int color;int height, weight;public Cat(int color, int height, int weight) {this.color = color;this.height = height;this.weight = weight;}public boolean equals(Object obj) {if(obj == null) return false;else {if(obj instanceof Cat) {Cat c = (Cat)obj;if(c.color == this.color && c.height == this.height && c.weight == this.weight) {return true;}}}return false;}}

结果:

--------------------Configuration: <Default>--------------------
false
true
false
true

 

如果直接输出一个对象, 会输出类名字@hashcode,

应该重写toString方法:

public class TestToString {public static void main(String[] args) {Dog d = new Dog();System.out.println("d:=" + d);}
}class Dog {public String toString() {return "I'm a cool dog!";}
}

  

 

  

转载于:https://www.cnblogs.com/wujixing/p/5328102.html

JAVA基础--toString, equals方法相关推荐

  1. Java基础之equals方法和= =的区别

    ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符. 如果一个变量指向的数据是对象类型的 ...

  2. 程序猿的日常——Java基础之equals与hashCode

    equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...

  3. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

  4. Java基础之equals和==的区别深入解析

    Java基础之equals和==的区别深入解析 以下是本文目录大纲 equals 和 == 的区别 equals 的重写 复写hashCode方法,有31这个数字的作用 1. equals 和 == ...

  5. 在聊Java中的equals方法

    2019独角兽企业重金招聘Python工程师标准>>> java规范中equals方法特征 自反性(对于任何非空引用x, x.equals(x) 返回true;) 对称性(对于任何引 ...

  6. java中equals函数所在的类,重写Java中的equals方法介绍

    Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型, ...

  7. java基础之main方法解读:java的主函数

    java基础之main方法解读: 一.深入理解main方法:(由java虚拟机调用) 解释main方法的形式:public static void main (String [] args){} 1. ...

  8. JAVA基础——toString()方法,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  9. 【java基础18:方法覆盖与多态】什么时候使用方法覆盖 toString方法的覆盖 多态的基础语法与作用 向上/向下转型

    目录 方法覆盖Override 多态 方法覆盖Override 方法覆盖初体验,什么样的程序要方法覆盖 /*当前程序存在的问题(设计上的问题)??鸟儿在执行move()方法的时候,最好输出的结果是:& ...

最新文章

  1. webrtc android ndk,webrtc 针对 android 平台的编译和运行
  2. 【物联网】NB-IoT简介
  3. linux nginx cdn,linux – Nginx Proxy_Pass到CDN与直接击中CDN. P...
  4. c语言机器人编程软件,Coconut编程机器人软件官方版下载_Coconut编程机器人软件 v1.3.4官方版 - Win7旗舰版...
  5. php mysql 非空_MySQL非空约束(NOT NULL)
  6. MySql学习之varchar类型
  7. 深度学习-超参数调优
  8. 关于知识图谱,我们接下来该研究什么?斯坦福教授们给出了答案
  9. 云+X案例展 | 民生类:基于AWS PaaS构建基础集团企业级中台
  10. PlayFrameWork实现文件上传,完整流程
  11. 解决 appcompat 1.1.0 导致 webview crash 的问题
  12. 微信公众平台自动回复详解
  13. 开发请打开Debug模式--Dcat-Admin框架实战(三)
  14. 川大计算机类专业的录取分数线,四川大学重点专业排名及录取分数线
  15. 容器云系列之容器技术相关概念介绍
  16. 雪狐密码箱PwdBox记录导出
  17. 何夕 - 六道众生·何夕科幻自选集(2014年1月31日)
  18. ear的英语怎么念_ear是什么意思_ear翻译_读音_用法_翻译
  19. 头条小程序 button组件 设置边框问题
  20. 模拟电子技术-模拟集成电路

热门文章

  1. 微软在位Azure自动机器学习服务释无程序代码网页UI
  2. 学习使用常用的windbg命令(u、dt、ln、x)
  3. redis学习篇(九)-----高级特性之事务处理
  4. Linux eclipse+perl开发环境安装
  5. htons、inet_addr、
  6. Linxu 常用命令大全(一)
  7. 以后装个云集群和云节点啥的太简单了(ubuntu)
  8. Oracle疑问解答
  9. Q102:光线追踪场景(4)——面朝大海
  10. Kafka概念及组件介绍