一般程式是 變數+函數
物件導向程式是 變數+函數+集合,三者混用
物件導向的集合叫做類別(class),集合裡的單元叫做 物件(object )。
集合裡可以有屬性,且集合裡的物件想當然有這些屬性。
範例來自 :
https://www.zetria.org/view.php?subj=programming&chap=3zzmik9mct
現在有一個集合,user , constructor(age, name, level, account, password) ,
建立user的屬性。
集合裡面還有一些函數。
/* 宣告類別:使用者 */
類用戶{
/* 建構物件 */
/* 輸入使用者資料 */
/* 並將其存成屬性 */
constructor(年齡、姓名、級別、賬號、密碼){
這個。年齡=年齡;
this.name = 名稱;
this.level = 水平;
this.account = 賬戶;
this.password = 密碼;
}
登錄名(賬號,密碼){
/* 確認帳號密碼正確 */
如果(賬戶){
如果(密碼==這個。密碼){
print("登錄成功!");
/* 呼叫greet 方法*/
/* 與使用者打招呼 */
這個。問候語();
}
}
}
/* 與使用者打招呼 */
迎接(){
print("歡迎回來,");
打印(這個。名字);
}
/* 印出使用者等級 */
顯示水平(){
打印(此級別);
}
/* 將使用者等級加 1 */
添加級別(){
這個.level++;
}
/* 將使用者年齡加 1 */
添加年齡(){
這個年齡++;
}
}函式多載允許同一個函數名,輸入不同的變數,輸出不同結果。範例:C++ 中的函式多載
#include <iostream>
int Volume(int s) { // 立方體的體積。
返回 s * s * s;
}
double Volume(double r, int h) { // 圓柱體的體積。
返回 3.1415926 * r * r * static_cast<double>(h);
}
long Volume(long l, int b, int h) { // 長方體的體積。
返回 l * b * h;
}
詮釋主要(){
std::cout << 體積(10);
std::cout << 體積 (2.5, 8);
std::cout << 體積(100l, 75, 15);
}
方法覆寫
子集合裡的函數可以覆蓋掉父集合的函數輸出。
多形
多型性(Polymorphism)的概念,又可分為多載(Overloading)和複寫(Overriding)
用子類別實作出各式各樣不同的方法,藉此讓父類別的方法藉此達到延伸和多樣化的效果。
留言
張貼留言