[轉] 從 C 到 Objective C 入門1

轉自: http://blog.liuhongwei.cn/iphone/objective-c/php

進軍iPhone開發,最大的難點之一就是怪異的Objective C語法了。不過,瞭解以後才發現,原來僅僅是形式上與C++、Java有差別,屬於換湯不換藥。若是有C語言基礎,又用過C++、Java,2天以內掌握Objective C,沒有問題,至少看例子程序會感受順眼不少。html

Objective C脫胎於C語言,蘋果版的開發編譯環境就是大名鼎鼎的Xcode,其中的Cocoa就是Objective C庫函數。objective-c

與C語言一致的部分

int main( int argc, const char *argv[] ) {
    printf( "hello worldn" );
    return 0;
}
  • 數據類型,表達式,各類運算符
  • 循環:for, while, do while, break, continue
  • 分支:if, else, switch

類定義@interface

#import <Foundation/NSObject.h>
 
@interface Bank: NSObject {
    NSString *name;
    int amount;
}
 
-(void) print;
-(void) addAmount: (int) a;
-(int) amount;
-(Bank *) initWithName: (NSString *) n andAmount: (int) a;
 
@end
  • 寫在Bank.h中
  • #import是引入庫函數
  • @interface是代表定義了一個類,冒號後面是父類類型
  • 兩個大括號之間的部分就是類的成員變量,只有類函數可以直接訪問
  • - 代表要定義一個類對象級別的函數;若是是+,代表要定義類級別的函數
  • 返回值與參數的類型放在()內
  • 函數定義中的: 代表後面會跟一個參數
  • 若是函數有多個參數,要寫多個xxx:
  • 類的函數定義結束後,使用@end關閉

類實現@implementation

#import "Bank.h"
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
 
@implementation Bank
-(void) print {
    printf("Total amount is %i", amount);
}
 
-(void) addAmount: (int) a {
    amount += a;
}
 
-(int) amount{
    return amount;
}
 
-(Bank *) initWithName: (NSString *) n andAmount: (int) a{
    self = [super init];
    name = n;
    amount = a;
    return self;
}
 
@end
  • 寫在Bank.m
  • @implementation定義函數的具體內容,後面接着類名
  • 函數頭按照定義來寫
  • 最後用@end來結束全部函數體

調用寫好的類和類函數

#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import "Bank.h"
 
int main( int argc, const char *argv[] ) {
    //建立新對象,使用缺省初始化函數
    Bank *bankDefault = [[Bank alloc] init];
 
   //建立新對象,使用自定義初始化函數
   Bank *bank = [[Bank alloc] initWithName: @"Harry" andAmount: 28];
 
    [bank addAmount: 1];
 
    [bank print];
 
    [bank free]; // 釋放對象
   [bankDefault free]; // 釋放對象
 
    return 0;
}
  • 調用類函數的時候,首先建立並初始化對象。這裏咱們使用缺省的init和咱們自定義的initWithName來分別初始化一個對象;
  • 使用[]來調用函數,按照次序分別是:對象名,函數名,: 參數值(若是有),函數名第二部分(若是有),:第二參數值(若是有);

參考:

相關文章
相關標籤/搜索