国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

equals函數

2019-11-14 21:55:46
字體:
來源:轉載
供稿:網友
equals函數

equals函數在Object類當中,而Object類是所有類的父類,所以所有的類里面都有equals函數。

“==”操作符之前用于比較兩個基本數據類型的值是否相等,而對于引用數據類型,“==”操作符用于判斷兩個引用是否指向堆內存中的同一個對象。

class User{String name;int age;}
class Test{public static void main(String args[]){User u1 = new User();User u2 = new User();User u3 = u1;boolean b1 = u1 == u2;boolean b2 = u1 == u3;System.out.PRintln(b1);System.out.println(b2);}}

equals函數用來比較兩個對象的內容是否相等

對象的內容相等通常需要滿足下面兩個條件:

1、對象的類型相同(用instanceof比較)

2、兩個對象的成員變量的值完全相同

Object函數中的equals方法:

class Test{public static void main(String args[]){User u1 = new User();User u2 = new User();User u3 = u1;boolean b1 = u1.equals(u3);System.out.println(b1);}}

通過對比我們發現調用Object的equals方法和使用“==”比較兩個對象是否相等沒有區別,所以我們需要根據上述兩個條件復寫equals方法

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

首先判斷this和obj是否指向堆內存中的同一個對象,是的話就返回true,再判斷obj是不是User類型的,不是的話返回false,是的話就進行向下轉型,再比較this和u的成員變量是否相等。基本數據類型的成員變量比較使用"==",引用數據類型的成員變量比較用equals

class Test{public static void main(String args[]){User u1 = new User();User u2 = new User();User u3 = new User();u1.name = "zhangsan";u1.age = 12;u2.name = "lisi";u2.age = 13;u3.name = "zhangsan";u3.age = 12;System.out.println(u1.equals(u2));System.out.println(u1.equals(u3));}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汶川县| 吉首市| 保山市| 监利县| 阿合奇县| 宝应县| 阜新| 淮南市| 晋宁县| 高雄县| 邮箱| 清河县| 洪洞县| 平泉县| 高邑县| 砀山县| 永城市| 平阳县| 绥滨县| 鹿泉市| 井冈山市| 肃宁县| 辽阳县| 仁布县| 汉中市| 都匀市| 澎湖县| 西贡区| 平泉县| 米脂县| 雷山县| 浦北县| 巴青县| 乳山市| 襄垣县| 晴隆县| 垣曲县| 平原县| 漳浦县| 赤水市| 万山特区|