首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Objective-C 類基礎:接口聲明、實現定義、對象創建與方法調用

     編輯:關於C語言

Objective-C 類基礎:接口聲明、實現定義、對象創建與方法調用

Objective-C 以「類」為核心組織代碼,分為 @interface(宣告)與 @implementation(實現)兩部分。本文以分數類 Fraction 為例,演示完整類定義與使用流程。

完整代碼示例

// Fraction.h / main.m 合併展示
#import 

// 1. @interface:聲明類繼承關系、實例變量、公開方法
@interface Fraction : NSObject {
    int numerator;   // 分子
    int denominator; // 分母
}

- (void)print;              // 打印分數
- (void)setNumerator:(int)n; // 設置分子
- (void)setDenominator:(int)d; // 設置分母
@end

// 2. @implementation:實現方法、可再次聲明實例變量
@implementation Fraction

- (void)print {
    NSLog(@"這個分數是:%i/%i", numerator, denominator);
}

- (void)setNumerator:(int)n {
    numerator = n;
}

- (void)setDenominator:(int)d {
    denominator = d;
}
@end

// 3. main:使用類
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 分配 + 初始化(兩步合一常用 [[Fraction alloc] init])
        Fraction *myFraction = [[Fraction alloc] init];
        
        // 消息發送調用方法
        [myFraction setNumerator:1];
        [myFraction setDenominator:3];
        [myFraction print];  // 輸出: 這個分數是:1/3
    }
    return 0;
}

關鍵點解析

概念說明
@interface公共契約:父類、實例變量、方法簽名。對應 .h 文件
@implementation私有實現:方法代碼、可補充實例變量。對應 .m 文件
alloc類方法:分配原始內存,isa 指向類對象,實例變量歸零
init實例方法:初始化實例變量,返回 self(可返回不同對象)
[obj msg]消息發送:動態綁定,運行時查找 IMP。非函數調用
@autoreleasepool自動釋放池上下文:管理手動內存對象生命週期(ARC 環境下仍建議保留)

方法簽名特點

  • 冒號參數:- (void)setNum:(int)n andDen:(int)d; 選擇器為 setNum:andDen:
  • 參數名外部可見:調用時 [obj setNum:1 andDen:3],自我文檔化
  • 無參方法無冒號:- (void)print

內存管理提示

  • MRC 時代:alloc/init 得到 retainCount=1,需手動 release
  • ARC 時代:編譯器自動插入 retain/release,**但 @autoreleasepool 仍需保留**以釋放 autorelease 對象
  • 屬性聲明 @property 可自動生成 setter/getter + 實例變量

這個 Fraction 例子雖簡單,卻包含了 Objective-C 類機制的全部核心要素:**聲明、實現、分配、初始化、消息發送、內存管理**。打牢這塊基石,Cocoa 開發大廈才能穩固起樓。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved