(int)sex;
// 狗的一个行为
// bark(叫) 返回值为void空,无参
- (void)bark;
//lookHome(看家)无参
- (void)lookHome;
@end
Dog.m文件中
#import Dog.h
@implementation Dog
// 由此可见,利用Dog类名来调用这个方法时 无论创建多少次对象都是同一个dog
+ (instancetype)sharedDog{
static Dog * dog;
if (dog == nil) {
dog = [[Dog alloc] init];
}
return dog;
}
//init开头的方法都是初始化构造函数 一种编码规范
// init是没有参数的默认写法
- (instancetype)init{
if (self = [super init]) {
}
return self;
}
//这是具有一个参数的初始化构造函数
- (instancetype)initWithName:(NSString *)name{
if (self = [super init]) {
name = name;
}
return self;
}
//具有两个参数的构造函数
- (instancetype)initWithName:(NSString *)name AndSex:(int)sex{
if (self = [super init]) {
self.name = name;
self.sex = sex;
}
return self;
}
//叫得方法 实现
- (void)bark{
//在类的方法中可以访问成员变量,也可以赋值
self.name = @刀刀;
NSLog(@%@在叫!,_name);
}
- (void)lookHome{
self.sex = 1;
NSLog(@刀刀狗是个%d的,_sex);
}
@end
可以看出来 变量、及变量的get/set方法代码删除后, 利用property来修饰的属性 再执行main.m文件时 没有报错 即property自动为我们生成了set/get方法
?
这就是一个自定义的类。此类是直接继承于NSObject父类的(@interface Dog : NSObject),下一篇会说继承
一个标准的自定义类就是这样来写,具体遇到问题遇到什么需求可以适当的做些改变
?
?