(程式)物件導向程式

一般程式是 變數+函數

物件導向程式是 變數+函數+集合,三者混用

物件導向的集合叫做類別(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)

用子類別實作出各式各樣不同的方法,藉此讓父類別的方法藉此達到延伸和多樣化的效果。

















留言

這個網誌中的熱門文章

國產機車馬力表 2019

國產機車馬力表 2020

國產機車馬力表 2018