出現封裝的原因:我們需要一種方式來增強資料的安全性
屬性不能隨意修改
屬性不能改為任意的值
封裝是物件導向的三大特性之一
封裝是指隱藏物件中一些不希望被外部所訪問到的屬性或方法
我們也可以提供給乙個getter()和setter()方法是外部可以訪問到屬性
getter() 獲取物件中指定的屬性
setter() 用來設定物件指定的屬性
使用封裝,確實增加了類的定義的複雜程度,但是它也確保了資料的安全
隱藏屬性名,使呼叫這無法隨意的修改物件中的屬性
增加了getter()和setter()方法,很好控制屬性是否是唯讀的
使用setter()設定屬性,可以增加資料的驗證
使用getter()方法獲取屬性,使用setter()方法設定屬性可以在讀取屬性和修改屬性的同時做一些其他的處理
我們可以使用@property裝飾器來建立唯讀屬性,@property裝飾器會將方法轉換為相同名稱的唯讀屬性,可以與所定義的屬性配合使用,這樣可以防止屬性被修改
物件導向中
形如 開頭 結尾的這類方法統稱為魔法方法 1.init self 定義類中屬性的特殊方法,當進行例項化物件時會自動呼叫該方法初始化該方法中的屬性。語法 def init self,name,age self.name name self.age age2.str self 在類中定義了該方法,當進行...
python中 物件導向
1,物件導向 定義 與面向過程對比 官方定義 程式語言 2,物件導向語法 class 類名 內容3,例項 定義類 class person 行為通過方法體現 吃飯def eat self print 紅燒雞腿我喜歡吃 睡覺def sleep self print 睡覺也是一種生活態度 定義物件 li...
javascript中物件導向
概念 面向過程是親力親為,事無鉅細 物件導向就是找乙個物件,指揮得到結果 物件導向將執行者變成指揮者 物件導向不是面向過程的替代,而是面向過程的封裝 特性 抽象性 如果需要用乙個物件描述乙個資料,需要抽取這個物件 的核心資料,物件不再特定條件下,不知道是什麼 抽象就是霧裡看花,模模糊糊 比如 nam...