将引用对象改为值对象 值对象和引用对象

来源:互联网 发布:如何测试网络稳定性 编辑:程序博客网 时间:2024/06/06 21:44

1.引用对象

public class Money{int moneys;public Money(int moneys){this.moneys = moneys;}public static void main(String[] arg){Money money = new Money(45);Money money2 = new Money(45);System.out.println(money.equals(money2));}}

引用对象中,判断两个对象是否相等是根据两个对象的标示符是否相等来判断,money和money2明显不同,所以为false

2.转化为值对象、

public class Money{int moneys;public Money(int moneys){this.moneys = moneys;}@Overridepublic boolean equals(Object o){if(this==o)return true;if(!(o instanceof Money))return false;Money money= (Money)o;return this.moneys == money.moneys;}@Overridepublic int hashCode(){return moneys;}public static void main(String[] arg){Money money = new Money(45);Money money2 = new Money(45);System.out.println(money.equals(money2));}}

返回为true

两个之对象是否相等,看两个对象的数值是否相等。money和money2的数值moneys都是45,所以返回为true(复写equals和hashCode方法)。

原创粉丝点击