歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Objective-C語法之創建類和對象

1、創建類

1.1、新建Single View app 模版項目,按Command + N 新建文件,創建類Student ,繼承與NSObject


1.2、生成student.h  和student.m

  1. #import <Foundation/Foundation.h>   
  2.   
  3. @interface Student : NSObject  
  4.   
  5. @end  
 
  1. #import "Student.h"   
  2.   
  3. @implementation Student  
  4.   
  5. @end  

1.3、在頭文件裡添加類成員變量和方法

@interface

  1. #import <Foundation/Foundation.h>   
  2.   
  3. @interface Student : NSObject  
  4. {  
  5.     NSString *studentName;  
  6.     NSInteger age;  
  7. }  
  8.   
  9. -(void) printInfo;  
  10. -(void) setStudentName: (NSString*) name;  
  11. -(void) setAge: (NSInteger) age;  
  12. -(NSString*) studentName;  
  13. -(NSInteger) age;  
  14. @end  

  • @interface 類的開始的標識符號 ,好比Java  或 C 語言中的Class   
  • @end 類的結束符號
  • 繼承類的方式:Class:Parent,如上代碼Student:NSObject
  • 成員變量在@interface Class: Parent { .... }之間
  • 成員變量默認的訪問權限是protected。
  • 類成員方法在成員變量後面,格式是:: scope (returnType) methodName: (parameter1Type) parameter1Name;
  • scope指得是類方法或實例化方法。類方法用+號開始,實例化方法用 -號開始。

1.4、實現類方法

@implementation

  1. #import "Student.h"   
  2.   
  3. @implementation Student  
  4.   
  5. -(void) printInfo  
  6. {  
  7.     NSLog(@"姓名:%@ 年齡:%d歲",studentName,studentAge);  
  8. }  
  9. -(void) setStudentName: (NSString*) name  
  10. {  
  11.     studentName = name;  
  12. }  
  13. -(void) setAge: (NSInteger) age  
  14. {  
  15.     studentAge = age;  
  16. }  
  17. -(NSString*) studentName  
  18. {  
  19.     return studentName;  
  20. }  
  21. -(NSInteger) age  
  22. {  
  23.     return studentAge;  
  24. }  
  25.   
  26. @end  

1.5、在View中創建並初始化,調用方法。

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];      
  4.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  5.       
  6.     Student *student = [[Student alloc]init];  
  7.     [student setStudentName:@"張三"];  
  8.     [student setAge:10];  
  9.     [student printInfo];  
  10.     [pool release];  
  11.   
  12. }  

  • Sutdent *student = [[Sutdent alloc] init]; 這行代碼含有幾個重要含義
  •  [Student alloc]調用Student的類方法,這類似於分配內存,
  •  [object init]是構成函數調用,初始類對象的成員變量。

打印結果:
  1. 姓名:張三 年齡:10歲  
Copyright © Linux教程網 All Rights Reserved