關於未將物件引用設定到物件例項簡單原理分析,與解決方法
阿新 • • 發佈:2019-01-06
這個問題我相信困擾著許多的,剛剛入門面向物件思想的同學。
其實這個問題沒有想象中的那麼複雜,只是太多同學把寫程式碼想得太過於快餐。不知道現在還有多少同學在處錯誤的時候,先讀完錯誤提示再去看怎麼錯的呢?
下面我來給大家分析一下這個“未將物件引用設定到物件例項”這個問題。
在我們要例項化物件的時候,其實是分兩步的。
第一步,宣告變數。就是 : 類名 變數名 ;
第二步,給宣告的變數賦值。就是 變數名 = 變數的值;(由於這個變數的值的取得方法有許多,我就不一一寫出了)。
第一步就是在記憶體中為這個變數分一塊空間,但是是空的,暫存器有地址,沒內容。
這時候,在我們賦值的時候,就是往我們已經分好的這塊空間裡面放入東西,這個東西必須是這個變數的型別。
而“未將物件引用設定到物件例項”這個錯誤也就來了。也就是我們變數的值這個部分根本就沒有獲取到。
這個錯誤在你賦值的時候,是不會提示你“未將物件引用設定到物件例項”的,因為這個時候,你只是物件例項化的錯誤,沒有涉及到物件的引用。
當你第一次用到這個物件的時候(呼叫方法啦,呼叫屬性啦)這都屬於對這個物件的引用,這時候才會報錯,為什麼錯呢?
原因就是你的“變數的值”這部分根本就沒有值,可能有的人說了,你這完全就是邏輯混亂啊,變數的值怎麼會沒有值呢。
其實,我們在直接用new來例項化物件的時候,確實不會出現這個問題。但是,有的時候我們需要用別的方式來獲取到,查詢到這個物件的值
如果我們填入的錯誤的用來獲取,查詢的資訊,那麼這個值就會找不到,就放不到記憶體中那個空間中去。
所以在出現了這個錯誤的時候,直接去找提示你錯誤的那行中,引用的物件的例項化那,看看是什麼填錯了吧。