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

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

Address的無參構(gòu)造器

Address的無參構(gòu)造器并沒有用到,可是我實際測試時,去掉Address的無參構(gòu)造器,寫入數(shù)據(jù)會失敗,為什么?

正在回答

7 回答

一:在JAVA中,重寫構(gòu)造函數(shù)必須先寫一遍不帶參數(shù)的構(gòu)造方法

????在該視頻中,這里的POJO對象重寫了構(gòu)造函數(shù).,所以必須寫。

二:如果沒有重寫構(gòu)造函數(shù),可以不寫無參構(gòu)造函數(shù),因為系統(tǒng)默認是有這個方法的

三:當new一個對象的時候,已經(jīng)使用到了無參構(gòu)造函數(shù),例如:

Student student = new Student();? 這里new的時候已經(jīng)使用了無參構(gòu)造方法



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

慕函數(shù)9281397 提問者

視頻里面new Address對象的時候都是new的有參對象啊,只是在調(diào)用方法傳參的時候有一個Address address聲明,但這個并沒有new對象,按理說這個無參構(gòu)造器不是必須的,所以這點就有點不懂
2016-10-31 回復 有任何疑惑可以回復我~
#2

未之未央丿 回復 慕函數(shù)9281397 提問者

前面的Address address只是在聲明對象,后面的new 構(gòu)造方法,才是得到這個對象的值,如果只有Address address; 此時輸出這個address是為null的
2016-10-31 回復 有任何疑惑可以回復我~
#3

慕函數(shù)9281397 提問者 回復 未之未央丿

我意思是,這個案例中我不寫無參構(gòu)造器為什么程序功能無法實現(xiàn),我又看了一遍,程序里沒有引用Address的無參對象的地方
2016-10-31 回復 有任何疑惑可以回復我~

5分13秒的時候 ?你看那個視頻,他有定義接收數(shù)據(jù)所用的對象模型。那你想象一下,他獲取這個數(shù)據(jù),并把數(shù)據(jù)放到Address類的里面,你認為用的方法是有參數(shù)構(gòu)造方法么? ?我個人認為是用到的new (無參數(shù)) ? ?然后應用set方法放到對象中的。這屬于 ?hibernate 底層獲取數(shù)據(jù)以后進行封裝的知識了,你可以嘗試查一下

?

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

慕函數(shù)9281397 提問者

有道理,想想應該是這樣的,這樣就理解深刻多了
2016-10-31 回復 有任何疑惑可以回復我~

還有 假如你用一些架構(gòu)的時候,像這個Hibernate,他返回數(shù)據(jù)類型的時候,假如你用Student類進行接收,那么他有可能的順序是 ?先調(diào)用一個無參數(shù)方法 ?創(chuàng)建新對象,然后進行封裝。不過這個我不確定,因為我也在看,只是我個人的理解。所以,有的時候,無參數(shù)構(gòu)造方法的調(diào)用是不經(jīng)意間的。需要記住的就是 ?無參數(shù)構(gòu)造方法 一定不可以沒有(如果不寫,默認會有)。 ? 如果你想找到 ?哪里調(diào)用了這個無參構(gòu)造方法,那你可以打個斷點看一下

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

慕函數(shù)9281397 提問者

謝啦,我去試試
2016-10-31 回復 有任何疑惑可以回復我~

Student的一個成員屬性是 ?Address類 ??

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

慕函數(shù)9281397 提問者

。。。。我初學,還是不懂。。。Student里面的Address也只是聲明,并沒有new的操作啊,只有在調(diào)用setAddress(address)方法之前才會有調(diào)用構(gòu)造器的操作,而且都是有參的構(gòu)造器
2016-10-31 回復 有任何疑惑可以回復我~

是的 ?你這樣根本不會出錯 因為你根本就沒有調(diào)用無參的構(gòu)造方法 你怎么可能出錯呢。在寫程序的時候 ?無參數(shù)的構(gòu)造方法是必須的,無論用或者不用都必須寫上。如果你就這么些 ?你創(chuàng)建對象 Student s = new Student(); ?你看看你報錯不。 ? 我都說過了 ? 就算你正常創(chuàng)建類的時候 ?如果你不寫構(gòu)造方法,編譯時,會自動給你加上一個構(gòu)造方法, 如果你寫了其他的構(gòu)造方法,那么程序就自然就不會給你加入構(gòu)造方法了。但是你一旦要是調(diào)用了無參構(gòu)造方法來創(chuàng)建對象 ? 那肯定是要報錯的啊。 ? 就好像你調(diào)用了一個沒有定義的方法 ?怎么會不報錯呢

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

慕函數(shù)9281397 提問者

所以我原本想問的就是視頻案例里,Address類也沒有調(diào)用無參構(gòu)造方法,可是我自己照視頻敲代碼之后去掉Address的無參構(gòu)造方法程序運行就有問題了,想找大神問問來著。。。
2016-10-31 回復 有任何疑惑可以回復我~

構(gòu)造器其實就是構(gòu)造對象實例的方法,無參數(shù)的構(gòu)造方法是默認的,但是如果你創(chuàng)造了一個帶有參數(shù)的構(gòu)造方法,那么無參的構(gòu)造方法必須顯式的寫出來,否則會編譯失敗。 ?這是網(wǎng)上搜到的原話,你自己好好理解理解。不要總是懷疑別人說的,怎么和你說的完全相反呢?而且你說的這個不用懷疑 ?明明就是錯的

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

慕函數(shù)9281397 提問者

我寫了個test DEMO,mian函數(shù)里面new一個Student的有參對象并輸出到控制臺,而且我沒寫無參構(gòu)造器,程序能正常運行沒有出錯
2016-10-31 回復 有任何疑惑可以回復我~
#2

慕函數(shù)9281397 提問者

public class People { public static void main(String[] args) { Student p=new Student(1, "zzz"); System.out.println(p.name); } } class Student{ int id; String name; public Student(int id, String name) { this.id = id; this.name = name; } }
2016-10-31 回復 有任何疑惑可以回復我~

不應該吧。正常雖然你代碼里面不寫無參數(shù)構(gòu)造方法 ?但是編譯時 ?實際上是默認有的。所以并不會出錯的。
還有一點 ?無參構(gòu)造器是必須的。盡管你不寫,編譯也會自動加入的。只不過你寫的代碼里沒有而已

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

慕函數(shù)9281397 提問者

沒有,在寫了有參構(gòu)造器的情況下,無參構(gòu)造器不是必須的吧?而且編譯也能通過
2016-10-31 回復 有任何疑惑可以回復我~
#2

慕函數(shù)9281397 提問者

你去網(wǎng)上查查,在寫了有參構(gòu)造器的情況下,系統(tǒng)是沒有無參構(gòu)造器的,除非你自己寫一個無參構(gòu)造器,這點不用懷疑的
2016-10-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

Address的無參構(gòu)造器

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

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號