1.创建class类 (commd + N)
2.类分为两个文件,分别是.h .m**
- .h 为类声明文件
- .m 为类逻辑实现文件
// class.h
@interface class : NSObject // : 表示class继承于 NsObjct
3.引用类,实例化
#import "class.h" //引入声明文件
init main() {
@autoreleasepool{
//类名 变量名 = [类名 方法名]
class *class1 = [class new]; // 实例化class类为 class1, * 表示是指针
class *class2 = [class new]; // 实例化class类为 class2
NSLog(@"class1 = %p", class1); //打印class1指针地址
NSLog(@"class2 = %p", class2);
}
return 0;
}
4.声明类的成员变量(成员变量属于私有变量,不可在类外部访问)
// class.h
#import <Foundation/Foundation.h>
@interface class : NSObject
{
NSString *_name; // 声明私有变量 _name
int _arg; // 声明私有变量 _arg
int _sex; // 声明私有变量 _sex
}
@end
// class.m
#import "class.h"
@implementation class
- (instancetype) init // init方法声明
{
self = [super init];
if (self) {
_name = @"张三";
}
return self;
}
@end
5.声明类的属性(属性可在外部访问和使用)
// class.h
#import <Foundation/Foundation.h>
@interface class : NSObject
{
NSString *_name;
int _arg;
int _sex;
}
@property(nonatomic, strong) NSString name; // 暴露name变量
@end
// main.m
#import "class.h"
...code
NSLog(@"class1.name = %S", class1.name);
...code
6.声明类的方法
// class.h 声明文件
#improt <Foundation/Foundation.h>
@interface class : NSObject
{
NSString *_name;
}
/** 方法类型 (- 代表非静态的方法,+ 代表类静态方法) */
/** :(NSString *)name -> :代表有参数,(NSString *) 代表参数类型, name 代表参数名 */
/** :(int)a andB:(int)b -> 代表有两个参数,分别为int a, int b */
- (int) add:(int)a andB:(int)b; // 声明实例的方法 (返回数字) add (a: int, b:int)
- (void) setName:(NSString *)name; // 声明实例的方法 (无返回) setName (name :字符串)
- (NSString *)getName; // 声明实例方法 (返回字符串) getName (无参数)
+ (void) log; // 声明类静态方法 (无返回) log(无参数)
@end
// class.m 逻辑文件
#import "class.h"
@implementation class
// 实现setName方法逻辑
- (void) setName: (NSString *)name
{
_name = name;
}
// 实现getName方法逻辑
- (NSString *) getName
{
return _name;
}
// 实现静态方法逻辑
+ (void) log
{
NSLog(@"12212");
}
// 实现双参数方法逻辑
- (int) add: (int)a andB:(int)b
{
return a + b;
}
@end
// main.m 调用
code...
[class1 setName:@"李四"]; // 调用实例方法
NSLog(@"name = %s", [class1 getName]); // 调用实例方法
[class log]; // 调用类方法
[class1 add:1 andB:2]; // 调用实例方法
code...
7.声明类的静态变量
// class.m
#import "class.h"
@implementation class
{}
static NSString *SEX = '南';
+ (viod) console
{
NSLog(@"sex -> %s", SEX);
}
@end