程式設計中乙個有兩個程式設計思想,其中乙個是面向過程,另乙個是物件導向。下面分別介紹一下這兩種程式設計方式。
面向過程程式設計全稱為(process-oriented-programming)可以簡稱為 pop。面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟逐步實現,使用的時候再依次呼叫即可。
物件導向程式設計全稱為(object-oriented-programming),物件導向是把事物分解成乙個個物件,然後由物件之間分工與合作。
物件導向程式設計思想是以每個物件為功能中心,具有明確分工。
物件導向程式設計具有靈活、**復用率高、容易維護和開發的優點,適合多人合作的大型軟體專案。
物件是由屬性和方法組成的,是乙個無序鍵值對的集合,指的是乙個具體的事物
語法:
//字面量建立物件
var ldh =
console.log(ldh);
//建構函式建立物件
function star(name, age)
var ldh = new star('劉德華', 18); // 例項化物件
console.log(ldh);
在 es6 中增加了類的概念,可以使用class
關鍵字宣告乙個類,之後以這個類來例項化物件,類抽象了物件的公共部分,它泛指一大類物件。而物件特指某乙個,通過類例項化乙個具體的物件。
語法:
//步驟1 使用class關鍵字
class name
//步驟2使用定義的類建立例項 注意new關鍵字
var xx = new name();
constructor()
方法是類的建構函式(預設方法),用於傳遞引數,返回例項物件,通過new
關鍵字生成物件例項時,自動呼叫該方法,如果沒有顯式定義,類內部會自動建立乙個constructor()
。
例如:
// 1.建立類 class 建立乙個明星類
class star
}// 2.利用類建立物件 new
var ldh = new star("劉德華", 18);
var zxy = new star("張學友", 20);
console.log(ldh);
console.log(zxy);
執行結果:
語法:
// 1.建立類 class 建立乙個明星類
class star
sing(song)
}// 2.利用類建立物件 new
var ldh = new star("劉德華", 18);
var zxy = new star("張學友", 20);
console.log(ldh);
console.log(zxy);
ldh.sing("冰雨");
zxy.sing("李香蘭");
執行結果:
注意:
現實中的繼承:子承父業,比如我們繼承了父親的姓。
程式中的繼承:子類可以繼承父類的一些屬性和方法。
語法:
// 父類
class father
// 子類繼承父類
class son extends father
例如:
class father
money()
}class son extends father
var son = new son();
son.money(); // 100
如果使用一下方式則會報錯
class father
calculate()
}class son extends father
}var son = new son(1, 2);
son.calculate();
解決:出現這個錯誤的原因是因為傳遞的引數指向了子類,所以需要向父類中傳遞引數,所以需要在子類建構函式中呼叫父類建構函式,所以在子類建構函式中新增super()
即可。
class father
calculate()
}class son extends father
}var son = new son(1, 2);
son.calculate(); // 3
super
關鍵字可以訪問或呼叫父類上的函式,可以呼叫父類的建構函式,也可以呼叫父類的普通函式。
使用super
呼叫父類的普通函式
class father
}class son extends father
}
注意:
繼承中的屬性或方法查詢原則:就近原則。
如果例項化子類輸出乙個方法,先看子類有沒有這個方法,如果有就先執行子類的。如果子類裡面沒有,就去查詢父類有沒有這個方法,如果有,就執行父類的這個方法(就近原則)
語法:
class father
sum()
}// 子類繼承父類加法方法,同時,擴充套件減法方法
class son extends father
subtract()
}var son = new son(5, 3);
son.subtract(); // 2
son.sum(); // 8
注意: python學習 物件導向 類 物件 繼承
約定成俗的類的命名方式 1 首字母大寫 2 為了與其他進行區分盡量避免使用 建議採用studenthomework小駝峰的格式 類的常規格式 class student 定義變數 資料成員 student sum 80 類變數 建構函式 def init self,name,age 其中的self....
JS物件導向 繼承
參考博文 一 物件導向的繼承 1 解析 在原有物件的基礎上,略作修改,得到乙個新的物件,並且不影響原有物件的功能 2 如何新增繼承 拷貝繼承 屬性 call 方法 for in 繼承 子類不影響父類,子類可以繼承父類的一些功能 復用 屬性的繼承 呼叫父類的構造1函式 call 方法的繼承 for i...
js 物件導向 繼承
繼承 將方法的定義放在建構函式中,每建立乙個新物件,都會重複建立該方法一模一樣的副本,浪費記憶體。解決 如果多個子物件都要使用乙個相同的方法時,應該把這個方法放在一種原型物件中,建構函式中不再包含方法定義。原型物件 乙個型別中,專門為所有子物件集中儲存共有方法的物件。同一型別下多個子物件需要用乙個共...