一、類和方法
下圖中是一段的類聲明的語法展現,聲明瞭一個叫作 MyClass 的類,它繼承於根類:NSObject。(根類能夠被全部的其餘類直接或間接繼承。)java
下圖是一個方法的語法展現,方法的聲明由如下幾個部分構成:方法類型標識符,返回類型,一個或多個方法簽名關鍵字,以及參數類型和名稱。函數
類的實體變量的訪問權限:post
對應的代碼:lua
-
@interface Worker : NSObject
-
-
-
-
-
-
-
-
-
-
-
沒有寫關鍵字的實體變量,好比 char *name是@protected的。也就是說,默認是protected的。
二、建立類
1.一、新建版項目,按Command + N 新建文件,建立類Student ,繼承與NSObject
1.二、生成student.h 和student.m
-
#import <Foundation/Foundation.h>
-
-
@interface Student : NSObject
-
-
-
-
-
-
-
1.三、在頭文件裏添加類成員變量和方法
@interfacespa
-
#import <Foundation/Foundation.h>
-
-
@interface Student : NSObject
-
-
-
-
-
-
-
-(
void) setStudentName: (NSString*) name;
-
-(
void) setAge: (NSInteger) age;
-
-(NSString*) studentName;
-
-
- @interface 類的開始的標識符號 ,比如Java 或 C 語言中的Class
- @end 類的結束符號
- 繼承類的方式:Class:Parent,如上代碼Student:NSObject
- 成員變量在@interface Class: Parent { .... }之間
- 成員變量默認的訪問權限是protected。
- 類成員方法在成員變量後面,格式是:: scope (returnType) methodName: (parameter1Type) parameter1Name;
- scope指得是類方法或實例化方法。類方法用+號開始,實例化方法用 -號開始。
1.四、實現類中的方法
@implementation.net
-
-
-
-
-
-
-
NSLog(@
"姓名:%@ 年齡:%d歲",studentName,studentAge);
-
-
-(
void) setStudentName: (NSString*) name
-
-
-
-
-(
void) setAge: (NSInteger) age
-
-
-
-
-
-
-
-
-
-
-
-
-
1.五、建立類對象,調用方法。
-
Student *student = [[Student alloc]init];
-
[student setStudentName:@
"張三"];
-
-
-
-
- Sutdent *student = [[Sutdent alloc] init]; 這行代碼含有幾個重要含義
- [Student alloc]調用Student的類方法,這相似於分配內存,
- [object init]是構成函數調用,初始類對象的成員變量。
打印結果:
姓名:張三 年齡:10歲
二、類的實例方法使用多個參數
2.1添加一個多參數的方法和實現
-
-
-(
void) setNameAndAge:(NSString*) name setAge:(NSInteger) age;
-
-
-
-(
void) setNameAndAge:(NSString*) name setAge:(NSInteger) age
-
-
-
-
-
2.2調用
-
-
Student *student = [[Student alloc]init];
-
[student setNameAndAge:@
"李四" setAge:20];
-
-
-
打印結果:
姓名:李四 年齡:20歲
三、自定義構造函數
3.1聲明和實現構造函數
-
-
-(Student*) initWithNameAndAge:(NSString*) name setAge:(NSInteger) age;
-
-
-
-(Student*) initWithNameAndAge:(NSString*) name setAge:(NSInteger) age
-
-
-
-
-
[self setNameAndAge:name setAge:age];
-
-
-
-
-
-(id)init 這個方法用於類的初始化建立,每個類在建立的時候須要調用init方法,使用父類的init 方法獲得了self,這就能夠作一些子類初始化的工做code
3.2使用自定義構造函數:
-
Student *student = [[Student alloc]initWithNameAndAge:@
"rongfzh" setAge:6];
-
-
-
著做權聲明:本文由http://blog.csdn.net/totogo2010/原創,歡迎轉載分享。請尊重做者勞動,轉載時保留該聲明和做者博客連接,謝謝!htm