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

Objective-C 學習筆記:類別與物件基礎 (定義、建立、使用、實例變數操作)

     編輯:關於C語言

前言

Objective-C 是 C 的超集,加入 Smalltalk 風格物件模型。本文建立類別定義、物件建立與使用、實例變數操作的基礎認知。

一、Objective-C 簡史

  • 1980 年代初 Brad Cox 發明,融合 C 與 Smalltalk。
  • 1985 Steve Jobs 創 NeXT,採用 Objective-C 開發 NeXTSTEP。
  • 1996 蘋果收購 NeXT,NeXTSTEP → Cocoa,Objective-C 成為主力語言。

二、面向物件 vs 面向過程

三、類別定義 (兩部分)

介面部分 (.h)

@interface Person : NSObject {
    @public NSString *hobby;
    @protected NSString *name;
    NSInteger age;
    @private NSString *sex;
}
- (void)sayHi;
- (void)info;
@end

實現部分 (.m)

@implementation Person
- (void)sayHi { NSLog(@"Hello!"); }
- (void)info { NSLog(@"name:%@ sex:%@ age:%ld", _name, _sex, _age); }
@end

檔案慣例

  • `Person.h` — 介面
  • `Person.m` — 實現
  • 檔案名與類別名對應,但本質無強制關聯。

四、建立物件 (兩步驟)

Person *p = [Person alloc];  /* 1. 分配記憶體,實例變數歸零,回傳 id */
p = [p init];                /* 2. 初始化,設定初始值,回傳 id */

/* 合寫 */
Person *p = [[Person alloc] init];
  • `+alloc` 類方法,`-init` 實例方法。
  • `id` 通用物件指標類型。

五、使用物件

  • 指標變數儲存物件位址,代表物件。
  • 發送訊息:`[p sayHi]`、`[p info]`。
  • 存取實例變數 (需 `@public`):`p->_name = @"ZhangSan"`;`NSLog(@"%@", p->_name)`。

六、實例變數操作

預設 `@protected`,外部不可直接存取。需透過存取器方法或設為 `@public` (不建議)。

總結

掌握 `@interface`/`@implementation`、雙階段建立 (`alloc`/`init`)、訊息傳送語法、實例變數可見度,即可進入 Objective-C 開發大門。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
面向過程 (C)面向物件 (OC)
焦點步驟、函數物件、職責
擴充性差佳 (封裝、繼承、多型)
重用性低高