
我們以下例說明類別的寫法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #import <Foundation/Foundation.h> // 以下介面部份開始 @interface Demo : NSObject { int a; int b; } - ( void ) setA : ( int ) a_value setB : ( int ) b_value; - ( int ) do_something; - ( int ) a; - ( int ) b; @end // 以上介面部份結束 // 以下實作部份開始 @implementation Demo - ( void ) setA : ( int ) a_value setB : ( int ) b_value { a = a_value; b = b_value; } - ( int ) a { return a; } - ( int ) b { return b; } - ( int ) do_something { return a + b; } @end // 以上實作部份結束 // 以下為程式執行的 main() 函數 int main( int argc, char *argv[]) { Demo *demo = [[ Demo alloc ] init ]; [demo setA : 1 1 setB : 22 ]; NSLog( @"a = %i, b = %i" , [demo a ], [demo b ]); NSLog( @"a + b = %i" , [demo do_something ]); return 0 ; } /* 《程式語言教學誌》的範例程式 檔名:classdemo.m 功能:示範 Objective-C 程式 作者:張凱慶 時間:西元 2012 年 7 月 */ |
@interface 部份,屬性名稱後面接冒號 : ,冒號後接的名稱為所繼承的類別,此例 Demo 繼承 (inherit) NSObject
4 | @interface Demo : NSObject |
當然可以設計完全沒有繼承的類別,可是就得自己設計 alloc ,不過這牽涉太多底層細節,所以還是寫繼承 NSObject 方便點囉!
大括弧的部份為宣告屬性 (property) ,此例宣告兩個 int 型態的屬性 a 與 b
5 6 7 8 | { int a; int b; } |
底下到 @end 之前宣告四個方法 (method) ,開頭的減號 - 表示這是實體方法 (instance method) ,接著是小括弧為回傳值型態,後面空一格為方法名稱與參數 (parameter)
10 11 12 13 | - ( void ) setA : ( int ) a_value setB : ( int ) b_value; - ( int ) do_something; - ( int ) a; - ( int ) b; |
上面第一個稱為 setA:setB: 方法,兩個參數需要用小括弧指定型態,其他三個沒有參數就不需要接冒號。
@implementation 部份 setA:setB: 為設定屬性 a 與 b 的方法
21 22 23 24 25 | - ( void ) setA : ( int ) a_value setB : ( int ) b_value { a = a_value; b = b_value; } |
相對的, a 與 b 則是取得屬性 a 與 b 的方法
27 28 29 30 31 32 33 34 35 | - ( int ) a { return a; } - ( int ) b { return b; } |
setA:setB: 為 setter 方法, a 與 b 則是 getter 方法, Objective-C 裡的方法與屬性可以有相同名稱。
do_something 則是回傳兩個屬性的相加值
37 38 39 40 | - ( int ) do_something { return a + b; } |
好了,對類別有初步概念了嗎?底下有 main() ,我們就來編譯執行看看吧!

接下來,我們開始設計一個將英文小寫字母換成另一個英文小寫字母的 Encrypt 類別與 MVC 模式,也就是編密碼的類別,藉此介紹更多物件導向程式設計 (object-oriented programming) 的特性 :)
中英文術語對照 | |
---|---|
類別 | class |
物件 | object |
介面 | interface |
實作 | implement |
繼承 | inherit |
屬性 | property |
方法 | method |
實體方法 | instance method |
參數 | parameter |
物件導向程式設計 | object-oriented programming |
您可以繼續參考
基礎篇
相關目錄
Objective-C 入門指南
Objective-C 教材
首頁
參考資料
Learning Objective-C: A Primer
The Objective-C Programming Language
Cocoa Fundamentals Guide
Coding Guidelines for Cocoa
Advanced Memory Management Programming Guide
Archives and Serializations Programming Guide
沒有留言:
張貼留言