1. 类的申明
OC是面向对象的C,类的声明依然在.h中进行。用@interface(接口)的方式去申明一个类,相当于Java中的interface(接口)类
// Person.h文件
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
// 公有属性声明(@public以下的属性为公有属性)
@public
NSString * _name;
int _age;
// 私有属性申明(@private以下的属性为私有属性)
@private
float _weight;
}
// 静态方法声明(+开头的函数申明为静态函数)
+(void)eat;
// 动态公有方法申明(-开头的函数为动态公有)(私有方法即不申明,直接在.m中实现的方法)
-(void)run;
// 有参数方法
-(void)speek:(NSString *)target :(NSString *)content;
// 这个...我也不知道,有别名的 有参数方法吧
-(void)study:(NSString *)content andWith:(int)time andWith:(NSString *)who;
@end
2. 类的实现
类的实现在.m中进行,用@implementation(实现)去实现.h中@interface申明的类。
// Person.m文件
#import <Foundation/Foundation.h>
#import "Person.h"
@implementation Person
+(void)eat{
NSLog(@"吃吃吃");
}
-(void)run{
NSLog(@"泡泡");
}
-(void)speek:(NSString *)target :(NSString *)content {
NSLog(@"Hello!%@, %@", target, content);
}
-(void)study:(NSString *)content andWith:(int)time andWith:(NSString *)who {
NSLog(@"Study %@ for %d with %@", content, time, who);
}
@end // @end前面不能有空行
3. 在main.m中使用这个Person类
// main.m 文件
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// new 一个Person对象
Person * p = [Person new];
// 对象属性赋值
p->_age = 22;
p->_name = @"nick";
// 打印
NSLog(@"地址%p", p);
NSLog(@"name = %@",p->_name);
NSLog(@"age = %d", p->_age);
// 调用对象方法
[p run];
// 调用静态方法
[Person eat];
// 无别名有餐方法调用
[p speek:@"judy" :@"i love you"];
// 有别名有参方法调用
[p study:@"English" andWith:30 andWith:@"judy"];
}
return 0;
}
tip:有用的话请在右侧点👍哦!