課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
封裝是為了不讓人們隨便改變屬性值,可是為什么還要用set方法去改變呢,這樣不是和原來沒有什么區(qū)別了么?這是為什么呢?
2015-06-08
源自:Java入門第二季 升級版 7-1
正在回答
public?class?Demo{ ????private?int?age; ????public?void?setAge(int?age){ ????????this.age=age; } }
比如說這個Demo類,封裝了一個age屬性。
Demo d=new Demo();
不可以通過d.age訪問
但是可以通過d.setAge方法進行修改值
面向對象的三大特征 就是封裝 繼承和多態(tài)
借用百科的解釋
封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的接口。面向對象計算始于這個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。封裝是一種信息隱藏技術,在java中通過關鍵字private實現(xiàn)封裝。什么是封裝?封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數(shù)據(jù),封裝實際上使用方法將類的數(shù)據(jù)隱藏起來,控制用戶對類的修改和訪問數(shù)據(jù)的程度。
已經(jīng)對封裝解釋的很詳細了,由于是私有的,不可以被繼承。
① 對象的數(shù)據(jù)封裝特性徹底消除了傳統(tǒng)結構方法中數(shù)據(jù)與操作分離所帶來的種種問題,提高了程序的可復用性和可維護性,降低了程序員保持數(shù)據(jù)與操作內容的負擔。
②對象的數(shù)據(jù)封裝特性還可以把對象的私有數(shù)據(jù)和公共數(shù)據(jù)分離開,保護了私有數(shù)據(jù),減少了可能的模塊間干擾,達到降低程序復雜性、提高可控性的目的。
beyondlxb 提問者
getter和setter的作用,是對類內部數(shù)據(jù)的保護。如果能直接訪問該類的屬性,那么就存在屬性不可控的情況,而用方法來修改數(shù)據(jù),可以在方法中添加一些保護措施,這樣就能保護屬性值了。個人觀點,僅供參考。
間接操作變量,可以限制變量的使用條件,防止非法使用。
第二個之所以是setter和getter是javabean的一個規(guī)范,可讀性好,你完全可以用setABC()都可以實現(xiàn)封裝。
比如:
public?void?setAge(int?age) { ??if(age>0?&&?age<100) ??{ ??this.age?=?age; ??} ??else ??{ ???//輸入的年齡無效 ??} }
age是個私有屬性,要修改age的值只能通過setter去修改,如果要使用d.age的話,需要把age改成public的
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構中體會Java面向對象編程的奧妙
2 回答用setter方法設置了scree值以后,可不可以直接print(screen)? 一定要用getter才可以嗎?
1 回答子類可以改變父類的屬性么
2 回答為什么我在子類中修改父類的屬性值,子類屬性值也一同修改?
1 回答getter setter 方法
5 回答getter方法和setter方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2015-06-08
比如說這個Demo類,封裝了一個age屬性。
Demo d=new Demo();
不可以通過d.age訪問
但是可以通過d.setAge方法進行修改值
面向對象的三大特征 就是封裝 繼承和多態(tài)
借用百科的解釋
封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的接口。面向對象計算始于這個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。封裝是一種信息隱藏技術,在java中通過關鍵字private實現(xiàn)封裝。什么是封裝?封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數(shù)據(jù),封裝實際上使用方法將類的數(shù)據(jù)隱藏起來,控制用戶對類的修改和訪問數(shù)據(jù)的程度。
已經(jīng)對封裝解釋的很詳細了,由于是私有的,不可以被繼承。
① 對象的數(shù)據(jù)封裝特性徹底消除了傳統(tǒng)結構方法中數(shù)據(jù)與操作分離所帶來的種種問題,提高了程序的可復用性和可維護性,降低了程序員保持數(shù)據(jù)與操作內容的負擔。
②對象的數(shù)據(jù)封裝特性還可以把對象的私有數(shù)據(jù)和公共數(shù)據(jù)分離開,保護了私有數(shù)據(jù),減少了可能的模塊間干擾,達到降低程序復雜性、提高可控性的目的。
2015-07-07
getter和setter的作用,是對類內部數(shù)據(jù)的保護。如果能直接訪問該類的屬性,那么就存在屬性不可控的情況,而用方法來修改數(shù)據(jù),可以在方法中添加一些保護措施,這樣就能保護屬性值了。個人觀點,僅供參考。
2015-06-11
間接操作變量,可以限制變量的使用條件,防止非法使用。
第二個之所以是setter和getter是javabean的一個規(guī)范,可讀性好,你完全可以用setABC()都可以實現(xiàn)封裝。
比如:
2015-06-09
age是個私有屬性,要修改age的值只能通過setter去修改,如果要使用d.age的話,需要把age改成public的