1.類和例項
類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的「物件」,每個物件都擁有相同的方法,但各自的資料可能不同。
記憶體位址
給例項繫結屬性
由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去
2.資料封裝
就是在類裡面定義方法,來訪問類裡面的資料
從外部看student類,就只需要知道,建立例項需要給出name和score,而如何列印,都是在student類的內部定義的,這些資料和邏輯被「封裝」起來了,呼叫很容易,但卻不用知道內部實現的細節。
3.訪問限制
屬性名稱前面加上「_ _」兩個下劃線,就變成了私有變數只有內部可以訪問。
【雙下劃線開頭,並且以雙下劃線結尾的「__xx__」,是特殊變數,特殊變數是可以直接訪問的,不是private變數】
如修改上面的student類
這樣就訪問不到了,限制了訪問。如果想要獲取 可以在類中再次定義如get_score()方法,用來獲取。【其他需求同理】
請把下面的student物件的gender欄位對外隱藏起來,用get_gender()和set_gender()代替,並檢查引數有效性:
4.繼承和多型
繼承就是class student(object): 因為student 沒有繼承什麼,所以寫object 所有的類都繼承object。
可以在子類中對父類中的方法進行改進(當存在和父類相同的方法的時候,執行時子類的方法會覆蓋父類的方法)
多型就是比如student 繼承了people 可以看到 a既是student型別又是people型別。【反過來就不行】
多型的好處:
新增乙個people的子類,不必對another()做任何修改,實際上,任何依賴people作為引數的函式或者方法都可以不加修改地正常執行,原因就在於多型。
開閉原則:
對擴充套件開放:允許新增people子類;
物件導向類
類的宣告 functiona es6 class a2 生成例項 newa newa2 如何繼承 借助建構函式繼承 functionp p.prototype.say function 父類的原型物件無法被子類繼承 functionc 借助原型鏈繼承 functionp functionc c.pr...
物件導向類
類與例項 1 類的宣告 1 第一種方式 用建構函式模擬類的方式 function animal 2 第二種方式 es6 class class animal2 2 生成例項 new animal new animal2 類與繼承 如何實現繼承 1 借助建構函式實現繼承 function parent...
物件導向,類
一 物件導向 1 什麼是物件 1 物件是記憶體中專門用來存放資料的一塊區域 2 物件可以存放各種資料 比如 數字 布林值 3 物件由三部分組成 物件的標識 id 物件的型別 type 物件的值 value 2 面向過程的語言 1 面向過程指將我們的程式的邏輯分解為乙個乙個的步驟,通過對每個步驟的抽象...