當(dāng)前對象為null 是可以調(diào)用方法的,有什么問題嗎
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();
}
運(yùn)行結(jié)果為;false null
i為空 可以調(diào)用方法呀!有什么問題呢
2017-05-13
你在調(diào)用方法前先寫一句 ?i=null; 你就知道怎么回事了
2016-02-20
樓上說的是,Couse i = new Course();這句話,實(shí)際上是創(chuàng)建了一個(gè)Course對象,內(nèi)存中開辟了空間來放它,然后i是對這個(gè)對象的引用。
所以,它并不是空(null),而是一個(gè)對象(的引用)。
老師說,null不能調(diào)用equals方法,為什么呢?
如果想調(diào)用一個(gè)方法,你得先有個(gè)對象吧。但是null并不是一個(gè)對象,內(nèi)存中都沒它的空間。所以無法調(diào)用方法。
就像樓上說的,可以打個(gè)比方,
對象相當(dāng)于一個(gè)盒子,方法可以理解為盒子里的東西。
但是null它連盒子都沒有,就更沒有盒子里的東西了。
2016-01-08
不是那樣的,在你用Couse i = new Course();創(chuàng)建了一個(gè)Course對象,其中i是這個(gè)對象的引用,雖然你沒有賦值,但是系統(tǒng)會(huì)加上默認(rèn)值,也就是說此時(shí) i 引用的對象中,id==0, name==null,所以這個(gè) i 引用的不是空對象。?
2015-12-27
其實(shí)我覺得可以這樣理解,Couse i = new Course(); 就相當(dāng)于創(chuàng)建了一個(gè)盒子,但是盒子里什么東西都沒有;而null就相當(dāng)于連盒子都沒有。
2015-12-03
Java?語言規(guī)范
雖然?true?和?false?看上去似乎是個(gè)關(guān)鍵字,但是他們在技術(shù)上而言是屬于布爾的字面值類似地,null?看上去也像個(gè)關(guān)鍵字,但從技術(shù)上而言其是一個(gè)表示空的字面值。不是對象,是對象的都繼承類Object
2015-12-03
不是啊,任何類都可以調(diào)用equals方法,因?yàn)閑quals是Object類里面的方法,而Object類是所有類的根類,任何類其實(shí)都是繼承Object類
2015-11-29
Couse i = new Course(); 這個(gè)不是null,i是一個(gè)沒有賦值的對象,應(yīng)為Couse b = new Course("1","2");這個(gè)說明Couse有兩個(gè)構(gòu)造函數(shù),一個(gè)是空的 還有一個(gè)是public Couse(String a, String b ){...},這個(gè)構(gòu)造函數(shù)給你變量也賦值類。所以b.屬性是會(huì)有值得。