// 创建对象
// Person *student = [[Person alloc]init];
// // student->_hobby = @"玉兔";
// [student sayHi];
// [student sleep];
// Person *caoyu = [[Person alloc]init];
// [caoyu sayHiWinthName:@"范冰冰"];
// [caoyu sayHiWinthName:@"范冰冰" sex:@"nv"];
// // 创建对象自定义初始化方法
// Person *longge = [[Person alloc]initWithName:@"龙哥" sex:@"男" hobby:@"女" age:23];
// [longge sayHi];
// Person *fancong = [[Person alloc]initWithName:@"聪哥" sex:@"男" hobby:@"longge" age:23];
// [fancong sayHi];
// 新建对象
Person *jianing = [[Person alloc]initWithName:@"贾宁" sex:@"男" hobby:@"煎饼果子" age:20];
[jianing setName:@"高健"];
NSLog(@"name:%@",[jianing name]);
[jianing sayHi];
// OC方法调用
// 消息语法/消息机制
// [receiver message];
// [接受者 消息]
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
// 成员变量可见度修饰符
// @public 公开的 公有的
// 作用范围: 类的内部和类的外部
// 类的内部:
//当前类的实现部分(@[email protected] 之间)
// 面向对象的三大特性 : 继承 封装 多态
// public 违背封装特性
// @privte 私人 的/私有的
// 作用范围: 只有类的内部可以使用
// @protected 受保护的
// 当前类和子类中可以使用
// 系统默认的可见度修饰就是@protected
// @protected
//@private
NSString *_name;
NSString *_sex;
NSString *_hobby;
NSInteger _age;
}
// 访问器 设置器
// getter / setter方法
- (NSString *)name;
- (NSString *)sex;
- (NSString *)hobby;
- (NSInteger)age;
- (void)setName:(NSString *)name;
- (void)setsex:(NSString *)sex;
- (void)sethobby:(NSString *)hobby;
- (void)setage:(NSInteger)age;
// 无参方法
// sayHi
- (void)sayHi;
//- (instancetype)sayHi;
// 一个无参方法
// - : 方法类型说明符(- 实例方法/+类方法)
// void 方法返回值
// sayHWithName 参数描述
// : 参数标识
// (nsstring *) 参数类型
// name 参数名
// 方法名 是 OC 中查找对应方法的检索机制
// 方法名的构成 : 参数描述 + 参数标示符(:)
// 有几个参数标识符(:)就有几个参数
// sayHiWithName:
- (void)sayHiWinthName:(NSString *)name;
// 俩个参数
// sayHiWithName:sex:
- (void)sayHiWinthName:(NSString *)name
sex:(NSString *) sex;
// 三个参数
// sayHiwithName:sex:hobby:
- (void)sayHiWinthName:(NSString *)name
sex:(NSString *)sex
hobby :(NSString *)hobby;
// 四个参数
// sayHiWinthName:sex:hobby:age:
- (void)sayHiWinthName:(NSString *)name
sex:(NSString *)sex
hobby:(NSString *)hobby
age :(NSInteger)age;
- (void)sleep;
// 自定义初始化方法
- (instancetype)initWithName:(NSString *)name
sex:(NSString *)sex
hobby:(NSString *)hobby
age:(NSInteger)age;
// 三个参数初始化
- (instancetype)initWithName:(NSString *)name
sex:(NSString *)sex
hobby:(NSString *)hobby;
// 俩个参数初始化
- (instancetype)initWithName:(NSString *)name
sex:(NSString *)sex ;
// 一个参数初始化
- (instancetype)initWithName:(NSString *)name;
@end