黑馬程序員——Objective-C——定義類、方法、創建對象


-----Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流!-------

一、類的聲明

注意點:類名的的命名規范:有意義、駝峰命名、首字母大寫

#import <Foundation/Foundation.h>
// 類的聲明
@interface : NSObject
{
    @public
     int speed; // 時速
}
- (void)run; // 跑的行為
@end

1>成員變量:

  interface中的大括號{}中是聲明成員變量(變量默認初始化為0)的。

  @public是變量的訪問權限。

  interface中大括號之外是用來聲明類方法的。

2>成員變量的作用域:

  @public:任何類。

  @private:類內。

  @protected:類本身與子類。

3> NSObject

  所有類或父類必須繼承代表具有創建類對象的能力。

二、類的實現

@implementation Car
- (void) run
{
    NSLog(@"時速為%d的車子", speed);
}
@end

 三、創建對象

//在非ARC內存管理模式下
int main() { //創建車子對象
  Car *c = [[Car alloc]init];//此處會retain一次
  c->speed = 300;
  [c run];
  [c release];//這里需要釋放對象資源
  return 0; }

 四、常見錯誤

  1> 只有類的聲明,沒有類的實現。

  2>漏了@end。

  3>@interface和@implementation嵌套。

  4>兩個類的聲明嵌套。

  5>成員變量沒有寫在括號里面。

  6>方法的聲明寫在了大括號里面。

 五、Objective-C與函數的區別

  1>oc方法只能聲明在@interface和@end之間,只能實現在@implement和@end之間,歸對象和類所有(依賴於對象)。

  2>函數可寫在除@interface外文件任何地方,歸文件所有(不依賴於對象)。

  3>oc方法以減號或加號開頭,函數則不需要。

六、方法的定義

1>不帶參數的方法定義:

// 方法聲明
- (double)pi;
// 方法實現
- (double)pi
{
    return 3.14;
}

無參數方法實例圖:方法類型可以是加號或減號

 

無參方法調用實例圖:

  

2>帶單個參數方法的定義:

// 方法聲明
- (double)square:(double)number;
// 方法實現
- (double)square:(double)number
{
    return number * number;
}

 帶單個參數方法的實例圖:

帶單個參數方法的調用:

3>多個參數方法的定義:

// 方法聲明
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
// 方法實現
- (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
    return num1 + num2;
}

 多個參數方法定義實例圖:

多個參數方法的調用:

七、方法名注意點:

1>冒號也是方法名的一部分。

2>同一個類不允許兩個對象方法同名。

八、匿名對象:

[[car new] run]; //在非ARC內存管理模式下不建議這樣使用,導致占用內存不能及時釋放。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM