OC基礎--OC中類的聲明與定義


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.有返回值並且有多個參數

方法聲明:                                    方法調用:

    


 


免責聲明!

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



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