一、Defining Class
2020-02-19 本文已影响0人
iEugene
头文件声明定义
// SimpleClass.h
//类声明
//历史:很多类中有"NS"前缀是因为Cocoa和Cocoa Touch,Cocoa诞生于NeXTStep操作系统中用于构建APP的框架,后来NeXTStep被苹果公司收购了,所以框架中的代码也直接被合入了OS X中
//NSObject 类似Java语言中的Object,是所有类的基类,所有类定义必须显示的继承一个父类
@interface SimpleClass : NSObject
//属性定义
//引用类型数据定义前需要加*号
@property NSString *firstName;
@property NSString *lastName;
//(readonly)只读权限
@property (readonly) NSNumber *yearOfBirth;
@property int weight;
//函数声明
//函数签名信息:someMethodWithValue、NSString*、secondParam:(int)
//实现函数必须保证签名信息一致
//C语言中的函数命名必须是唯一是,但不影响Objective-C中的函数命名,只需要保证同一个类中的函数命名唯一
//继承父类也必须保持一致
//"-"号表示实例方法
//void表示无返回值
- (void) someMethodWithValue:(NSString*)value secondParam:(int)value1;
-(void)sayHello: (NSString *)name myName:(NSString *)myName
//返回值为int
-(int) someMethodReturnInt;
//返回值为NSString Object
-(NSString*) someMethodReturnString;
//"+"号表示类方法
+ (id) createInstance;
@end
类实现
// SimpleClass.m
#import "SimpleClass.h"
@implementation SimpleClass
- (void)someMethodWithValue:(NSString *)value secondParam:(int)value1{
//self关键字类似Java中this,表示类对象本身,还有一个关键字super与Java中的一样,表示父类
[self sayHello:value myName:[NSString stringWithFormat:@"%d",value1]];
}
-(void)sayHello: (NSString *)name myName:(NSString *)myName
{
NSLog(@"Hello %@!, My name is %@", name, myName);
}
+ (id)createInstance{
return [[SimpleClass alloc] init];
}
- (int)someMethodReturnInt{
return 0;
}
- (NSString *)someMethodReturnString{
return [self description];
}
@end