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