程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Objective-C——類、方法、屬性、成員變量

Objective-C——類、方法、屬性、成員變量

編輯:關於C語言

Objective-C——類、方法、屬性、成員變量


有過相關編程語言基礎,了解C++/java的相信對類的類、對象等概念是了解的。在此我也不做過多地贅述。

關於OC中類的定義及方法使用這塊,OC定義了一套自己的規范

類的定義:

@interface FirstClass :NSObject

@end

//@interface表示聲明的是一個類,“:”表示繼承關系,@end類的結束

類的實現

@implementation FirstClass


方法的聲明:

+(void)print;

-(id)init;

//"+"表示聲明的是一個類方法,由雷鳴調用

//“-”表示聲明的時實例方法,必須由類的對象來調用

//不帶參數的方法在調用時,會使用隱藏的self參數來訪問實例變量的屬性。

聲明帶參數的方法:

+(void)initWithName:(類型) 變量名and:(類型) 變量名 A:(類型) 變量名;

OC中帶參數的方法聲明比較怪異,紅色部分均為方法名,:表示後面跟的是參數。也即該方法的實際名稱是initWithNAme:and:A:


方法的調用:

[FirstClass print];
//通過類名調用類方法
FirstClass *node=[FirstClass alloc]init];//生成FirstClass的對象
[node initWithName:@"codebat" andAge:21];//調用參數的函數

屬性與變量

屬性是oc語言的一個新的機制,要求我們必須聲明與之對應的實例變量。

成員變量的聲明:

@interface FirstClass : NSObject
{
    //類的成員變量,默認訪問權限為protect
    int m;
    double n;
    char c;
    float f;
}
//成員變量在{}中定義,一旦聲明後可以在本類的實現文件.m文件中直接使用,相當於這個類裡面的全局變量

屬性
//成員變量在{}中定義,一旦聲明後可以在本類的實現文件.m文件中直接使用,相當於這個類裡面的全局變量
在聲明部分使用@property定義屬性
   @property(參數)類型 變量名;
   @property(nonatomic,strong);//非基本類型用strong
   @property(nonatomic,assign);//基本類型assign

在實現部分使用@synthesize合成屬性
   @synthesize 變量名;
   @synthesize name=_name;//_name是name的一個實例
參數:
讀寫屬性:readwrite/readonly
內存屬性:assign/retain/copy/strong,copy是內容拷貝,retain是指針拷貝
原子屬性:atomic/noatomic,nonatomic禁止多線程,變量保護提高性能

OC中的三種訪問權限控制符 @protected,保護實例變量只能被該類及該類的子類中定義的方法訪問; @private,保護實例變量只能被該類中的方法訪問; @public,該修飾符後面的變量可以被所有類或模塊定義的方法直接訪問。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved