OC中設計一個類的步驟:
一、聲明類:
1.用到的關鍵字--@interface 和 @end
2.類名
3.繼承NSObject
4.屬性
5.方法(行為,只需要聲明)
二、實現(定義)類
1.用到的關鍵字--@implementation 和 @end
2.實現@interface中聲明的方法
3.類中方法的聲明和實現一定注意開頭寫減號“-”
4.OC類中的小括號不能亂用,小括號是用來括住類型的!--謹記!
例: 下面的代碼中聲明和定義的類,類中的方法沒有返回值,沒有參數
1 * 實現@interface中聲明的方法 2 */ 3 4 #import <Foundation/Foundation.h> 5 6 // 類的聲明 7 @interface Dog : NSObject 8 // 屬性 9 { 10 @public 11 int speed; 12 } 13 14 // 只是聲明 15 - (void)run; 16 17 @end // 寫完@interface馬上寫@end 18 19 // 類的實現(定義) 20 @implementation Dog 21 22 // 實現run方法 23 - (void)run 24 { 25 NSLog(@"速度為%i的狗跑起來了", speed); 26 } 27 @end 28 29 int main() 30 { 31 Dog *dog = [Dog new]; 32 dog->speed = 100; 33 34 [dog run]; 35 36 37 return 0; 38 }
OC中的類的方法名有返回值和參數的情況:
1.一個參數對應一個冒號
2.冒號也是方法名的一部分
1 /* 2 設計一個計算器類 3 1.類名:Caculator 4 2.行為(方法): 5 * 返回PI:3.14 6 * 計算某個數值的平方 7 * 計算兩個數值的和 8 */ 9 10 #import <Foundation/Foundation.h> 11 12 // 計算器的聲明 13 @interface Caculator : NSObject 14 15 // 方法的聲明 16 - (double)pi; // 方法名pi,返回值類型是double小括號括住類型,無參數 17 18 // - (double)pi:(int)abc; // 方法名pi: 19 20 // 一個參數對應一個冒號 21 // 冒號也是方法名的一部分 22 - (double)pingfang:(double)number; // 方法名:pingfang: 23 24 // 方法名:sumOfNum1:andNum2:--為了增強代碼的可讀性 25 - (double)sumOfNum1:(double)num1 andNum2:(double)num2; 26 @end 27 28 29 int main() 30 { 31 Caculator *ca = [Caculator new]; 32 33 //NSLog(@"PI=%f", [ca pi]); 34 35 // double d = [ca pingfang:4]; 36 37 // NSLog(@"4的平方=%f", d); 38 39 double he = [ca sumOfNum1:10 andNum2:5]; 40 41 NSLog(@"10+5=%f", he); 42 43 44 45 Caculator *ca2 = [Caculator new]; 46 47 return 0; 48 } 49 50 51 // 計算器的實現 52 @implementation Caculator 53 54 // 實現@interface中聲明的方法 55 - (double)pi 56 { 57 return 3.14; 58 } 59 60 - (double)pingfang:(double)number 61 { 62 return number * number; 63 } 64 65 - (double)sumOfNum1:(double)num1 andNum2:(double)num2 66 { 67 return num1 + num2; 68 } 69 70 @end
OC中函數和OC對象方法的區別:
1.函數屬於整個文件,在文件的任意地方都能調用;對象方法之屬於對象,只有對象才能調用對象方法
2.對象方法只能聲明在@interface 和 @end 之間,對象方法只能實現在@implementation 和 @end之間。
函數的聲明和定義可以寫在任意地方,函數不能歸某個類所有,只屬於某個文件。
OC中方法的聲明與調用圖解:
1.有返回值無參數
方法聲明: 方法調用:
2.有返回值並且有一個參數
方法聲明: 方法調用:
3.有返回值並且有多個參數
方法聲明: 方法調用: