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

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

對于私有屬性get()和set()方法的問題

為什么Grade類的私有屬性students集合能在其它類修改(在Test類中g(shù).getStudents().add(stu1)),不是私有熟悉的修改只能通過set()方法修改嗎?通過get()方法獲得不應該只是一個拷貝students集合的副本嗎?

照我的理解的代碼應該

Grade grade = new Grade("三年一班","Tfme軟件開發(fā)課");

Student stu1= new Student("葉良臣", "女");

Student stu2 = new Student("王悅","男");

Set<Student> students = grade.getStudents();

students.add(stu1);

students.add(stu2);

grade.setStudents(students);



正在回答

2 回答

Set<Student> students = grade.getStudents(); ?//grade.getStudents()是調(diào)用了一個無參方法,這時候班級對象grade已經(jīng)獲得了學生集合(可以對這個集合直接操作,如add),但是你又重新set了一個新的students集合

students.add(stu1);?

grade.setStudents(students); //?又把這個新集合放進了班級對象里,這句代碼多余了。

前兩行代碼其實等同于g.getStudents().add(stu1);

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

早春的樹c

這個回答很好!對我很有幫助 另外樓主可以去看看封裝的知識
2017-02-10 回復 有任何疑惑可以回復我~
#2

慕粉粉餅 回復 早春的樹c

666666666
2017-02-10 回復 有任何疑惑可以回復我~
#3

qq_醉秒小清新_0 提問者

感謝你的回答,但可能是我語言組織的重點不夠清楚,我想問的點被完美的避開了。舉個例子吧來說明我的困惑吧: Grade grade = new Grade("三年一班","java"); grade.getGname.contact("最牛逼");//我認為在這里getGname()的返回值已經(jīng)不是gname屬性引用的內(nèi)容,而是拷貝了了gname中的內(nèi)容,存放在新的內(nèi)存地址中,對新地址中內(nèi)容的操作不會改變gname()中的內(nèi)容。因此在下面輸出語句中"最牛逼"三個字并沒有加進去。 System.out.print(grade.getGname).//輸出結(jié)果是(三年一班)。
2017-02-13 回復 有任何疑惑可以回復我~
#4

qq_醉秒小清新_0 提問者

可以發(fā)現(xiàn)同樣是引用型數(shù)據(jù)類型,身為String類型的gname屬性通過get()方法獲得后是無法修改的,而集合類型的students屬性通過get()方法獲得后是可以改變的。
2017-02-13 回復 有任何疑惑可以回復我~
#5

qq_醉秒小清新_0 提問者

感謝您的熱情回答
2017-02-13 回復 有任何疑惑可以回復我~
#6

慕瓜3841613 回復 qq_醉秒小清新_0 提問者

對象的話和單純的數(shù)據(jù)不一樣 =的話會把等號兩邊的對象連起來 數(shù)據(jù)的話等號就只是單純的賦值
2018-08-20 回復 有任何疑惑可以回復我~
查看3條回復

你這么理解也是可以的,

實例化Grade grade = new Grade("三年一班","java");

然后調(diào)用grade.getGname()得到gname的屬性內(nèi)容,



這時候?qū)name做的改變是不會涉及Grade類里的Gname的值的改變,也就是你理解的拷貝了一份內(nèi)容?

具體你可以寫個String 接收一下你改變的grade.getGname.contact("最牛逼"),打印一下看看。


但是一樓回答的是實例化之后,對于集合存值的操作發(fā)現(xiàn)你的步驟太繁瑣,實例化Grade類,然后調(diào)用grade.getStudents()就可以得到這個集合,點出add方法,是向集合添加對象,可以直接操作集合。


Grade類定義的私有屬性和私有集合可能有些出入,但是你的理解在私有屬性上是沒錯的,但是你這么操作私有集合可能步驟沒有那么多。


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

舉報

0/150
提交
取消
Hibernate初探之一對多映射
  • 參與學習       42161    人
  • 解答問題       310    個

Hibernate中一對多關(guān)聯(lián)映射配置,以及cascade和inverse屬性作用

進入課程

對于私有屬性get()和set()方法的問題

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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