关于Objective-C语法之类以及对象
2012-07-25 20:43:14 yuntianrichu 小娃子网 www.xiaowazi.com
1、类与法子下图中是一段的类声名的语法表示,声相识一个叫做 MyClass
的类,它秉持于根类:NSObject。(根类可以或许被全数的别的类直接或间接承继。) 下图是一个门径的语法展现,门径的声明由如下几个部份造成:方法类型标识符,返回类型,一个或多个门径签名枢纽字,以及参数类型和称说。 2、成立类1.1、新建Single View app 模版工程,按Co妹妹and + N 新建文件,建立类Student ,秉承与NSObject1.2、生成student.h 和student.m#import <Foundation/Foundation.h>@interface Student : NSObject@end #import "Student.h"@implementation Student@end 1.3、在头文件里增进类成员变量与法子@interface #import <Foundation/Foundation.h>@interface Student : NSObject{ NSString *studentName; NSInteger age;}-(void) printInfo;-(void) setStudentName: (NSString*) name;-(void) setAge: (NSInteger) age;-(NSString*) studentName;-(NSInteger) age;@end
1.4、实现类方式@implementation #import "Student.h"@implementation Student-(void) printInfo{ NSLog(@"姓名:%@ 年纪:%d岁",studentName,studentAge);}-(void) setStudentName: (NSString*) name{ studentName = name;}-(void) setAge: (NSInteger) age{ studentAge = age;}-(NSString*) studentName{ return studentName;}-(NSInteger) age{ return studentAge;}@end 1.5、在View中建树并初始化,挪用方法。- (void)viewDidLoad{ [super viewDidLoad]; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Student *student = [[Student alloc]init]; [student setStudentName:@"张三"]; [student setAge:10]; [student printInfo]; [pool release];}
姓名:张三 岁数:10岁 2、类法子运用多个参数2.1增加一个多参数的方式和实现....-(void) setNameAndAge:(NSString*) name setAge:(NSInteger) age;.... ....-(void) setNameAndAge:(NSString*) name setAge:(NSInteger) age{ studentName = name; studentAge = age;}.... 2.2挪用- (void)viewDidLoad{ [super viewDidLoad]; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Student *student = [[Student alloc]init]; [student setNameAndAge:@"李四" setAge:20]; [student printInfo]; [student release]; [pool release];}打印终于: 姓名:李四 年齿:20岁 3、自界说构造函数3.1申明和实现结构函数....-(Student*) initWithNameAndAge:(NSString*) name setAge:(NSInteger) age;.... ....-(Student*) initWithNameAndAge:(NSString*) name setAge:(NSInteger) age{ self = [super init]; if ( self ) { [self setNameAndAge:name setAge:age]; } return self;}.... -(id)init 这个法子用于类的初始化竖立,每一个类在创建的时候需要挪用init门径,使用父类的init
法子失掉了self,这便大约做一些子类初始化的工作 3.2运用自界说结构函数:- (void)viewDidLoad{ [super viewDidLoad]; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Student *student = [[Student alloc]initWithNameAndAge:@"rongfzh" setAge:6]; [student printInfo]; [student release]; [pool release];} |