1.声明文件
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
NSString *name;
NSString *name2;
NSString *name3;
float speed;
float speed2;
float speed3;
}
- (id)init;
//实例变量的set和get
- (void)setName:(NSString *)newName;
- (NSString *)name;
- (void)setSpeed:(float)newSpeed;
- (float)speed;
//启动方法
- (void)startCar;
//带参初始化
- (id)initWithName:(NSString *)newName2 WithSpeed:(float)newSpeed2;
//类的初始化
+ (id)carWithName:(NSString *)newName3 WithSpeed:(float)newSpeed3;
//使用点语法时的set方法
- (void)setName3:(NSString *)newName3;
//同上
- (void)setSpeed3:(float)newSpeed3;
@end
2.实现文件
#import "Car.h"
@implementation Car
- (id)init
{
self=[super init];
if (self) {
}
return self;
}
- (void)setName:(NSString *)newName
{
name=newName;
}
- (NSString *)name
{
return name;
}
- (void)setSpeed:(float)newSpeed
{
speed=newSpeed;
}
-(float)speed
{
return speed;
}
- (id)initWithName:(NSString *)newName2 WithSpeed:(float)newSpeed2;
{
self=[super init];
if (self)
{
name2=newName2;
speed2=newSpeed2;
}
return self;
}
#pragma mark - setter getter
- (void)setName3:(NSString *)newName3
{
name3=newName3;
}
- (void)setSpeed3:(float)newSpeed3
{
speed3=newSpeed3;
}
#pragma mark - class
+ (id)carWithName:(NSString *)newName3 WithSpeed:(float)newSpeed3
{
Car *myCar=[[Car alloc] autorelease];
myCar.name3=newName3;
myCar.speed3=newSpeed3;
return myCar;
}
#pragma mark - action method
- (void)startCar
{
NSLog(@"%@汽车启动了,时速为%f km/h",name3,speed3);
}
#pragma mark - memory management
- (void)dealloc
{
[super dealloc];
}
@end
3.主文件
#import <Foundation/Foundation.h>
#import "Car.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
/*
Car *myCar = [[Car alloc] init] autorelease];
//点语法
myCar.name = @"路虎";
myCar.speed = 70;
[myCar startCar];
//普通方法
[myCar setName:@"路虎"];
[myCar setSpeed:70];
[myCar startCar];
*/
//带参类方法初始化
Car *myCar = [Car carWithName:@"路虎" WithSpeed:70];
[myCar startCar];
}
return 0;
}
//注意动态和静态两种带参初始化方法