equals和==比较

来源:互联网 发布:怪物猎人x淘宝 编辑:程序博客网 时间:2024/05/18 14:11

**


equals()方法是object类中的方法,和==作用一样都是用来比较引用对象是否相同.区别在于equals可以对引用对象的内容进行比较.
MyDate类,未重写eqals方法前

public class MyDate {    private int day;    private int month;    private int year;    public MyDate(int day,int month,int year) {        // TODO Auto-generated constructor stub        this.day = day;        this.month = month;        this.year = year;    }    }
public class TestEquals {    public static void main(String[] args) {        // TODO Auto-generated method stub        MyDate m1 = new MyDate(15, 6, 2015);        MyDate m2 = new MyDate(15, 6, 2015);        if (m1==m2) {            System.out.println("m1==m2");        } else {            System.out.println("m1 != m2");        }        if (m1.equals(m2)) {            System.out.println("m1 is equals to m2");        }else {            System.out.println(" m1 is not equals to m2");        }    }}

这时没有重写equals方法,控制台输出的结果为m1 != m2和 m1 is not equals to m2
在MyDate类中重写equals方法

package com.equalspublic class MyDate {private int day;private int month;private int year;public MyDate(int day,int month,int year) {// TODO Auto-generated constructor stubthis.day = day;this.month = month;this.year = year;}@Overridepublic boolean equals(Object obj) {// TODO Auto-generated method stubMyDate myDate = new MyDate(day, month, year);//判断是否相等,如果相等直接返回true.if(this == obj){return true;}//不相等则进行判断,传进来的对象是否是MyDate对象.是,则进行强转.if (obj instanceof MyDate) {MyDate myDate2 = (MyDate) obj;//对Date的day,month,year,依次进行比较,全部相等则返回true,否则返回false.if (myDate.day == myDate2.day) {if (myDate.month == myDate2.month) {if (myDate.year == myDate2.year) {return true;}}return false;}return false;}return false;}}

此时控制台输出m1 != m2和m1 is equals to m2!

第一篇博文.

0 0
原创粉丝点击