亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

當前對象為null 是可以調用方法的,有什么問題嗎

public void test(){

Couse i = new Course();

Couse b = new Course("1","2");

System.out.println(i.equals(b));

System.out.println(i.name);

}

public static void main(String[] args){

Equels s = new Equels();

s.test();

}

運行結果為;false null

i為空 可以調用方法呀!有什么問題呢

正在回答

7 回答

你在調用方法前先寫一句 ?i=null; 你就知道怎么回事了

0 回復 有任何疑惑可以回復我~

樓上說的是,Couse i = new Course();這句話,實際上是創建了一個Course對象,內存中開辟了空間來放它,然后i是對這個對象的引用。

所以,它并不是空(null),而是一個對象(的引用)。

老師說,null不能調用equals方法,為什么呢?

如果想調用一個方法,你得先有個對象吧。但是null并不是一個對象,內存中都沒它的空間。所以無法調用方法。

就像樓上說的,可以打個比方,

對象相當于一個盒子,方法可以理解為盒子里的東西。

但是null它連盒子都沒有,就更沒有盒子里的東西了。

11 回復 有任何疑惑可以回復我~

不是那樣的,在你用Couse i = new Course();創建了一個Course對象,其中i是這個對象的引用,雖然你沒有賦值,但是系統會加上默認值,也就是說此時 i 引用的對象中,id==0, name==null,所以這個 i 引用的不是空對象。?

3 回復 有任何疑惑可以回復我~

其實我覺得可以這樣理解,Couse i = new Course(); 就相當于創建了一個盒子,但是盒子里什么東西都沒有;而null就相當于連盒子都沒有。

2 回復 有任何疑惑可以回復我~

Java?語言規范
雖然?true?和?false?看上去似乎是個關鍵字,但是他們在技術上而言是屬于布爾的字面值類似地,null?看上去也像個關鍵字,但從技術上而言其是一個表示空的字面值。不是對象,是對象的都繼承類Object

0 回復 有任何疑惑可以回復我~

不是啊,任何類都可以調用equals方法,因為equals是Object類里面的方法,而Object類是所有類的根類,任何類其實都是繼承Object類

0 回復 有任何疑惑可以回復我~
#1

此用戶不存在或被刪除 提問者

為何老師要說“請同學們思考一個問題:如果當前的this是空,可以調用equals方法嗎?為什么”
2015-12-03 回復 有任何疑惑可以回復我~

Couse i = new Course(); 這個不是null,i是一個沒有賦值的對象,應為Couse b = new Course("1","2");這個說明Couse有兩個構造函數,一個是空的 還有一個是public Couse(String a, String b ){...},這個構造函數給你變量也賦值類。所以b.屬性是會有值得。

0 回復 有任何疑惑可以回復我~
#1

此用戶不存在或被刪除 提問者

無參的構造方法是無法調用equals的,只要是有參的構造方法都是可以調用equals的是嗎
2015-12-03 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

當前對象為null 是可以調用方法的,有什么問題嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號