面向過程的程式設計(procedure-oriented programming,pop:以事件為中心,關心完成事件的詳細步驟,一步一步如何實現)
物件導向的程式設計(object oriented programming,oop,以事物為中心,也就是參與事件的參與者,設計事物的功能,而完成事件只是所有功能中的乙個小功能)
簡單的說就像人吃飯,面向過程就是人怎麼去吃飯(用筷子啊,清蒸啊,紅燒啊等等),物件導向就是以人為基準(人能 吃喝拉撒睡等)以飯為基準(飯有 公尺飯麵條海鮮各種不同做法等),人怎麼去吃飯只是所有功能的一部分
類:具有相同特徵和相同行為事物的抽象
類是乙個抽象的概念生活中不具體
物件:是類的例項 也就是類的具體表現 生活中的萬物都是物件
描述乙個類: 通過特徵(靜態屬性)行為(動態屬性)
@是oc的標誌
類的定義分為兩部分,:
1:類的介面部分,提供外部訪問的介面相當於使用說明書
2:類的實現部分詳單與功能的實現
類的介面部分寫在 .h 檔案中
介面部分的定義:(1)以@inte***ce開始 以 @end結束,只有把類的介面定義內容寫在之間才有效
(2)person 類名.
(3) : 號表示繼承. 表示他有父類
(4)nsobject父類名
例項變數 類似於結構體中的結構體成員,必須寫在大括號內,而且大括號內只能寫例項變數
nsstring相當於c語言中的定義字串char a[20]
nsinteger相當於c語言中得 int;
-(void)sayhi;//方法名 sayhi , - 號的意思是 由 物件呼叫的方法, + 號則表示是由類呼叫的方法.
類的實現部分 寫在.m 檔案中
類的實現部分:(1) 寫在@implementation 和 @end之間才有效
@implmentation 後的person是要實現的類(需要指定對哪乙個類實現)
方法呼叫採用 訊息傳送機制[receiver(接收者,類 或 物件) message(訊息,方法)]
如何區分是給類還是物件傳送訊息 [- 開頭是給物件傳送的, + 開頭是給類傳送的]
建立物件分兩步:
1 . 開闢空間.alloc 方法加號方法
通過[person alloc] 在堆區開闢的空間才是真正的物件,只不過對於指標變數per儲存的首位址,通過它才能訪問物件,所以我沒問你把指標變數per叫做物件(但真正的物件是堆區空間per本質是指標變數)
id 可以代表所有的物件型別 ,可以用對應型別的物件來接收
person *per = [person alloc];
2 . 初始化 init 放法完成初始化操作 減號方法,物件呼叫
per = [per init];
- (id)initwithname:(nsstring*)_name price:(nsinteger)_pricecolor:(nsstring *)_color;
由自己定義的初始化方法,給自己的每個例項變數賦初值
[per sayhi]; 由物件呼叫方法.
matlab初學 第一天
matlab學習第一天 1.1 陣列的建立 所有的元素必須置於 之中 陣列元素必須由,或者空格分隔。陣列的行與行之間必須用 標誌,或者用回車鍵enter換行 演示省去,這一部分很簡單。2 標準陣列 ones 產生全1陣列 zeros 產生全零陣列 eye 產生單位陣列 magic產生幻方陣列,這個厲...
演算法初學(第一天)
1.時間複雜度 時間複雜度為乙個 預設最差情況下 演算法流程中,常數運算元量的指標。常用o 讀作big o 來表示。具體來說,在常數運算元量的表示式中,只要高階項,不要低階項,也不要高階項的係數,剩下的部分 如果記為f n 那麼時間複雜度為o f n 先看時間複雜度的指標,然後再分析不同資料樣本下的...
初學Linux第一天
linux是以網路為核心的設計思想,是效能穩定的多使用者網路作業系統。目前還不太懂為什麼菜鳥教程上說可以用雲伺服器這裡留作後續解答,linux的安裝是在vmware虛擬機器中,為了提供乙個完整的pc機環境,置於安裝教程有很多就不在一一贅述。有個博主 超級努力的小白,學習日記做的挺詳細的我現在也是向他...