#import <Foundation/Foundation.h>
@interface Student : NSObject { /* 成员变量名命名规范:一定要以下划线 _ 开头 作用: 1> 让成员变量和get方法的名称区分开 2> 也可以跟局部变量区分开,一看到下划开头的变量,一般都是成员变量 */
//成员变量尽量不要用@public //@public int _age; //只读(readonly):只允许外界访问我的no,不允许外界修改我的no int _no; //只需要提供get方法 }
/* set方法 1.作用:提供一个方法给外界设置成员变量值,可以在方法实现里面对参数进行相应过滤 2.命名规范: 1> 方法名必须以set开头 2> set后面跟上去掉下划线的成员变量名称,成员变量的首字母必须大写 3> 返回值一定是void 4> 一定要接收一个参数,而且参数类型跟成员变量类型一致 5> 形参的名称不能跟成员变量名一样 */ - (void)setAge:(int)age;
/* get方法: 1.作用:返回对象内部的成员变量值 2.命名规范: 1> 肯定有返回值,返回值类型肯定与成员变量的类型一致 2> 方法名是去掉下划线的成员变量名 3> 不需要接收任何参数 */ - (int)age; - (int)no; - (void)study;
@end
@implementation Student
//age 的set方法的实现 - (void)setAge:(int)age { //对传进来的参数进行过滤 if (age <= 0) { age = 1; } _age = age; } //age 的get方法的实现 - (int)age { return _age; }
//no 的get方法的实现 - (int)no { return _no;
}
//study 的get方法的实现 - (void)study { NSLog(@"%d岁的学生在学习",age); }
@end
int main() { Student *stu = [Student new]; //stu->age = 10; //stu->age = -20; [stu setAge:0]; //[stu age] 是通过调用age的get方法来获取年龄 NSLog(@"学生的年龄是%d岁", [stu age]); //[stu study]; return 0; }
|