亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

你了解Java中的Object類嗎

 更新時(shí)間:2021年09月16日 15:35:44   作者:~程序媛~  
Object類是所有Java類的祖先。每個(gè)類都使用 Object 作為超類。所有對(duì)象(包括數(shù)組)都實(shí)現(xiàn)這個(gè)類的方法??梢允褂妙愋蜑镺bject的變量指向任意類型的對(duì)象,跟著小編來具體了解吧

任何一個(gè)類默認(rèn)繼承Object類,就算沒有直接繼承,最終也會(huì)間接繼承。

Object類,有兩種方式找到:

  1. 第一種:在源碼當(dāng)中找到
  2. 第二種:查閱java類庫的幫助文檔

Object類中兩個(gè)重要的方法:

  1. boolean equals (Object obj) //判斷兩個(gè)對(duì)象是否相等
  2. String toString () //將對(duì)象轉(zhuǎn)換成字符串形式

equals方法:

源代碼:

public boolean equals(Object obj) {
        return (this == obj);
    }

作用:通過調(diào)用這個(gè)方法可以判斷兩個(gè)對(duì)象是否相等

class MyTime {
	int year;
	int month;
	int day;
 
	public MyTime() {
		super();
	}
 
	public MyTime(int year, int month, int day) {
		super();
		this.year = year;
		this.month = month;
		this.day = day;
	}
}
public class Test02 {
	public static void main(String args[]) {
		// 判斷兩個(gè)基本數(shù)據(jù)類型的數(shù)據(jù)是否相等,,直接使用”==“就行
		int a = 100;
		int b = 100;
		// 這個(gè)等號(hào)判斷的是a中保存的100和b中保存的100是否相等
		System.out.println(a == b);// true(相等) false(不相等) 結(jié)果為true
 
		MyTime t1 = new MyTime(2021, 9, 15);
		MyTime t2 = new MyTime(2021, 9, 15);
		// 這個(gè)等號(hào)判斷的是t1保存的對(duì)象的內(nèi)存地址和t2保存的對(duì)象的內(nèi)存地址是否相等
		System.out.println(t1 == t2);// 結(jié)果為false
	}
}
        // 重寫Object的equals方法之前(比較的是內(nèi)存地址)
		boolean s = t1.equals(t2);
		System.out.println(s);// 結(jié)果為false

判斷兩個(gè)對(duì)象是否相等不能用“==”,因?yàn)椤?=“判斷的是兩個(gè)對(duì)象的內(nèi)存地址,然而在Object類中的equals方法當(dāng)中,默認(rèn)采用的是”==“判斷兩個(gè)java對(duì)象是否相等。而”==“判斷的是兩個(gè)java對(duì)象的內(nèi)存地址是否相等,我們應(yīng)該判斷的是兩個(gè)java對(duì)象的內(nèi)容是否相等,equals方法無法滿足,需要子類重寫equals。

public boolean equals(Object obj) {
		// 當(dāng)年月日都分別相等時(shí),表示兩個(gè)日期相同
		// 獲取第一個(gè)日期的年月日
		int year1 = this.year;
		int month1 = this.month;
		int day1 = this.day;
		// 獲取第二個(gè)日期的年月日
		if (obj instanceof MyTime) {
			MyTime t = (MyTime) obj;
			int year2 = t.year;
			int month2 = t.month;
			int day2 = t.day;
			if (year1 == year2 && month1 == month2 && day1 == day2) {
				return true;
			}
		}
		return false;
	}
// 重寫Object的equals方法之后(比較的是內(nèi)容)
		boolean t = t1.equals(t2);
		System.out.println(s);// 結(jié)果為true

toString方法:

源代碼:

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

源代碼上toString方法的默認(rèn)實(shí)現(xiàn):類名@對(duì)象的內(nèi)存地址轉(zhuǎn)換為十六進(jìn)制的形式。

作用:通過調(diào)用這個(gè)方法可以將一個(gè)“Java對(duì)象”轉(zhuǎn)換成“字符串形式的表示形式“。(建議所有子類都重寫此方法)

class MyTime {
	int year;
	int month;
	int day;
 
	public MyTime() {
		super();
	}
 
	public MyTime(int year, int month, int day) {
		super();
		this.year = year;
		this.month = month;
		this.day = day;
	}
 
	@Override
	public String toString() {
		return "MyTime [year=" + year + ", month=" + month + ", day=" + day + "]";
	}
 
}
public class Test01 {
	public static void main(String args[]) {
		MyTime t1 = new MyTime(2021, 9, 15);
		String s1 = t1.toString();
		// MyTime類重寫toString方法之前
		System.out.println(s1);// com.MyTime@15db9742
		// MyTime類重寫toString方法之后
		System.out.println(s1);// MyTime [year=2021, month=9, day=15]
 
	}
}

注:輸出引用時(shí),會(huì)自動(dòng)調(diào)用toString方法,即s1等同于s1.toString()。

到此這篇關(guān)于你了解Java中的Object類嗎 的文章就介紹到這了,更多相關(guān)Java Object類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot后端接口的實(shí)現(xiàn)(看這一篇就夠了)

    SpringBoot后端接口的實(shí)現(xiàn)(看這一篇就夠了)

    這篇文章主要介紹了SpringBoot后端接口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • springboot配置logback日志管理過程詳解

    springboot配置logback日志管理過程詳解

    這篇文章主要介紹了springboot配置logback日志管理過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java基于Netty實(shí)現(xiàn)Http server的實(shí)戰(zhàn)

    Java基于Netty實(shí)現(xiàn)Http server的實(shí)戰(zhàn)

    本文主要介紹了Java基于Netty實(shí)現(xiàn)Http server的實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • spring?boot教程之IDEA環(huán)境下的熱加載與熱部署

    spring?boot教程之IDEA環(huán)境下的熱加載與熱部署

    這篇文章主要介紹了spring?boot系列教程中的IDEA環(huán)境下的熱加載與熱部署的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • PowerJob的AliOssService工作流程源碼解讀

    PowerJob的AliOssService工作流程源碼解讀

    這篇文章主要介紹了PowerJob的AliOssServiceg工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • java實(shí)現(xiàn)雙向鏈表的增刪改

    java實(shí)現(xiàn)雙向鏈表的增刪改

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)雙向鏈表的增刪改,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java實(shí)戰(zhàn)之圖書管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之圖書管理系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java語言編寫一個(gè)圖書管理系統(tǒng),文中采用的技術(shù)有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下
    2022-03-03
  • Springboot+AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換

    Springboot+AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換

    前端傳過來的時(shí)間參數(shù),后端可以自定義時(shí)間格式轉(zhuǎn)化使用,這樣想轉(zhuǎn)成什么就轉(zhuǎn)成什么。本文將利用自定義注解AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換,感興趣的可以了解一下
    2022-04-04
  • java實(shí)現(xiàn)文件的上傳功能

    java實(shí)現(xiàn)文件的上傳功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件的上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

    Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

    這篇文章主要介紹了Mybatis批量插入,返回主鍵ID不成功,巨坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論