組織問題的方法(設計和具體語言實現);
物件,而不是控制或資料流,是我們設計和實現的焦點;
關注東西,而不是過程.
物件互相之間傳送和接收訊息;
傳送者傳遞訊息,做不做、怎麼做由接收者決定,這是「蛋圖」的核心;
訊息可能導致接收者改變狀態或返回結果;
物件是東西,對訊息做出反應;
類是東西的種類;
一切都是物件;
程式是一堆物件,互相之間通過訊息告訴別人做什麼;
每個物件都由其他物件組成;
每個物件都由型別;
有相同型別的物件可以接收同樣的訊息;
介面是接收訊息的方式;
定義在物件所在的類裡;
介面的函式:在程式作出可以拆換的東西,作用是交流和保護,可以任意改變內部的結構,外部不受影響
不是所有的東西都讓你碰;
把資料和操作放在同一物件中,資料在裡,操作在外;
隱藏資料和操作的細節;
外界僅能夠訪問公開出來那部分;
.h和.cpp檔案共同來定義乙個類;
類的宣告和屬性放在.h中;
所有的實體(定義)在.cpp檔案中.
如果乙個函式或類宣告在乙個標頭檔案,必須所有要用到它的地方或者唯一定義它的地方都要include它。
標頭檔案是設計這個類和使用這個類的人之間的約定;
編譯器會強化這個約定,使用這些函式都要宣告;
.h檔案放置宣告,.cpp檔案放置定義,他們成對出現;
include實質是把include中的文字插入到使用的檔案中去,因此include中不能包含定義,否則被多個檔案呼叫時會出錯;
可以通過extern int global把int global變為乙個申明而非定義,表明世界上有乙個叫global這個東西,然後在使用這個函式的地方加int global定義;
.cpp檔案是乙個編譯單元;
.h只能包含宣告(extern變數、函式原型、類/結構體的宣告);
#include 「」表示在當前目錄查詢;#include <>表示編譯器認定的系統目錄去找;
#include 等同於;
每個標頭檔案放乙個類的宣告;
對應的源**用相同的字首;
標頭檔案用#ifndef #define #endif圍繞起來。
成員變數:定義在類建構函式之外的,物件在成員變數就在,在類的所有成員函式可以使用這些成員變數;
引數:外面呼叫時要給函式的引數初始的值
本地變數:與函式有關,本地變數和引數的儲存屬性都是一致的,進入時才存在
所有的成員函式都有隱藏的變數this;
this是只想caller的指標
tree(int i){};tree t(12);變數的後面加上 ()表示對建構函式的呼叫;
當你的物件被消滅掉的時候用;
在建構函式前加~;
編譯器會在{}開始的地方分配{}裡面所有變數的空間;
建構函式的呼叫一直要到這個變數定義的地方才會發生,這個過程有可能會發生錯誤.
數值和結構:可以用{}初始化;
有建構函式的結構,不能直接用{}初始化,得要調建構函式.
沒有引數的建構函式就叫預設建構函式
C 學習筆記 物件導向程式設計
1.什麼是類 物件和成員?類 乙個類包含很多的物件。比如人類就是乙個類,張 三 李四等是人類的物件,這些物件擁有人類共同的功能和資料,如身高 體重 年齡等,而具體化這些資料我們可看做是人類的成員變數。所以類是由若干個變數和相關函式組成,而物件則擁有這些變數和函式。2.如何宣告乙個類?類只有先宣告才能...
C 物件導向程式設計(1)
1.類的修飾符 new 新建類,表示隱藏由基類中繼承而來的,與基類中同名的成員 public 公有,外界不受限制訪問 protected 保護類,該類及其子類可以訪問 internal 內部類,本程式的類可以訪問 private 私有類,只有該類可以訪問abstract 抽象類,抽象類是不完整的類,...
物件導向程式設計(C )學習筆記一
類 class 是對結構體struct的增強,也是用於自定義型別的。struct object class object 將關鍵字struct改為class,增加訪問修飾符public object obj obj.a 11 obj.b 12 obj.c 13.0 obj.d 14.0 class ...