Objetive-C objetive-oriented






中國用語

面向功能:如C pascal basic等較為原始的語言都是面向功能的語言,而不是面向對象。

面向對象(台灣用語是物件導向)會讓物件之間會彼此傳遞訊息。
而物件有屬性,彼此之間進行訊息(message)傳遞
而傳遞的處理方式就叫做方法(method)
方法可以說是一種 funtion的一種

消息傳遞可以用物件或者數值作為參數
回傳結果也可以是物件或或者是數值

訊息傳送者稱為sender
接收者稱為receiver

怎樣可以稱為一個物件?


  • 擁有屬性
  • 能夠向其他物件發出訊息
  • 能夠接受消息並且做相應的處理
  • 消息的處理透過方法來進行
  • 能夠讓人明確分辨這是一個物件


通過各個物件之間的訊息傳遞進行,就是物件導向語言的運行模式

objective-c的始祖是smalltalk 
因此有很多特性是延續 smalltalk




一個物件內有屬性也可以說是狀態(Attributes) 方法(Methods)
物件的屬性可以被定義為指向其他物件的指針,這個指針叫做實例變量
(instance variables 簡稱ivar),變量可能指向一個空的物件(null)。





物件(可能是一個保溫器)

具有溫度控制器,開關,當前狀態都是屬性
而屬性當中又有其他屬性
實例則是陶瓷加熱器
屬性是抽象的 實例則是根據屬性實作出來的
例如溫度是抽象的屬性 但是溫度計是實例

而物件與物件之間是透過其中一個物件的屬性作為和另外一個物件的變量來建立關係
沒有引用關係的兩個物件無法彼此傳遞消息

objective-c把連接物件的變量稱為輸出口(outlet)
各個物件之間彼此要建立插頭的關係,才能建立關係串接在一起。

這就是物件導向的基本精神。
物件導向的分析稱為(object-oriented Analysis) OOA
物件導向的設計稱為(object-oriented Desing) OOD
物件導向的編譯稱為(object-oriented Program) OOP
將使用物件的概念對物提進行抽象化的方法稱為物件導向


抽象化(abstraction)指的是盡可能不考慮相關的細節
關注物件的本質與核心,盡量簡化物件的本質。
這個抽取的過程就稱為抽象化,例如溫度還沒被發現時,你會感覺到熱和冷。
最後物理學家抽象化了冷和熱做成物件 然後屬性是溫度高低 實作成溫度計
就是這一種過程。

總之
適合抽取的對象就是“可被量化的”
不適合的就是“難以被量化的”

而數字是最大的爭議
數字是否是一個物件?
在obj-c和c++裡面數字不當作一個物件


模組與類別的概念


假設拆解一台車子有許多零件
這時候我們需要造出多台車子的時候,可以用許多共用的元件造車
這樣節省成本與時間

而在物件導向當中被稱為

類(中國用語)
類別(台灣用語)
class(英文)

雖然世界上的汽車有各種不同的樣子
但都有四個輪胎
幾個座椅,方向盤等構造
而他們差異就在於變量值的不同

用類來創建過程的過程叫做實例化(instantiation)
生成的物件稱為實例對象(instance object)
或簡稱為實例(instance)











Comments

Popular posts from this blog

MEGA 暫存檔案刪除

IOS GCD多執行緒

利用CMD指令強制刪除