第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

求Java內(nèi)置Object類的解釋

求Java內(nèi)置Object類的解釋

搖曳的薔薇 2023-06-21 13:32:13
Object a[] = new Object[2];a[0] = "asd";a[1] = 1;我正在尋求解釋這在 Java 中是如何實(shí)現(xiàn)的。我確實(shí)看過(guò) Object 的實(shí)現(xiàn),我必須尋求一些幫助才能理解它。創(chuàng)建一個(gè)可以保存任何類型的變量,例如Python是內(nèi)置的,但在Java中我們需要Object類。在 Object 的實(shí)現(xiàn)中是什么允許它具有任何類型,請(qǐng)解釋一下?
查看完整描述

2 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

讓我們一步一步來(lái):

  • Object是Java中所有引用類型的根源。凡是有參考價(jià)值的東西,也是instanceof Object

  • “顯然”,a[0] = "asd";分配一個(gè)String。字符串默認(rèn)是對(duì)象。

  • 最后,?a[1] = 1;導(dǎo)致自動(dòng)裝箱。您正在將一個(gè)Integer對(duì)象分配給該數(shù)組槽,而不是原始int 值 1。

當(dāng)然,這里還值得一提的是協(xié)方差。


查看完整回答
反對(duì) 回復(fù) 2023-06-21
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

想象一下,你有一個(gè)類動(dòng)物


class Animal {

    ...

}

以及擴(kuò)展動(dòng)物類的其他類,例如狗類和貓類:


class Dog extends Animal {

    ...

}


class Cat extends Animal {

    ...

}

在容器(數(shù)組、列表...)中,您現(xiàn)在想要存儲(chǔ)不同的對(duì)象。以下幾點(diǎn)可能是顯而易見的:


Dog[] dogs = new Dog[2];

dogs[0]    = new Dog("Bobby");

dogs[1]    = new Dog("Jack");


Cat[] cats = new Cat[2];

cats[0]    = new Cat("Cathy");

cats[1]    = new Cat("Jenny");

不可能的是將狗存儲(chǔ)在貓數(shù)組中,反之亦然。所以以下不起作用:


cats[1]    = new Dog("Tommy"); or dogs[1]  = new Cat("Tammy");

但是,如果您想在數(shù)組中包含不同的動(dòng)物,則該數(shù)組必須是要存儲(chǔ)在其中的所有動(dòng)物的超類類型


Animal[] pets = new Animal[3];

pets[0]  = new Dog("Bobby");

pets[1]  = new Cat("Cathy");

pets[2]  = new Fish("Nemo");

正如評(píng)論和上面的答案中已經(jīng)提到的,Object是java中所有類的超級(jí)類。即使您編寫自己的類,它也會(huì)擴(kuò)展對(duì)象類。


下面的東西是等價(jià)的:


class MyOwnClass { ... }


class MyOwnClass extends Object { ... }

這意味著即使沒(méi)有明確說(shuō)明,每個(gè)類都會(huì)擴(kuò)展對(duì)象類。因此,如果 object 是所有其他類的超類,您可以在類型為 object 的數(shù)組中執(zhí)行與對(duì) animal 數(shù)組所做的相同的操作。也就是說(shuō),里面存放不同的動(dòng)物種類。因此(因?yàn)樗蓄惗祭^承自該對(duì)象),以下適用,即使它沒(méi)有多大意義


Object[] objects = new Object[6];

objects [0]  = "Some String";

objects [1]  = 42;

objects [2]  = Double.NEGATIVE_INFINITY;;

objects [3]  = new Dog("Bobby");

objects [4]  = new Cat("Cathy");

objects [5]  = new File("C:\\temp\\test.txt");


查看完整回答
反對(duì) 回復(fù) 2023-06-21
  • 2 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)