封装 继承 多态
封装
封装是面向对象的特征之一,是对象和类概念的主要特性。也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐封装是面向对象的特征之一,是对象和类的主要特性。
封装 self关键字
// set方法的封装
main.m
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
Student *s = [Student new];
s->age = -10;
s->number = 20160120;
[s setAge:-10];
int a = [s age];
NSLog(@"age=%d",a);
[s study];
return 0;
}
Student.h
#import <Foundation/Foundation.h>
@interface Student : NSObject
{
// @public
int _age;
int _number;
}
- (void)study;
// set方法的声明
/*
set方法(只写)
1.作用:提供一个可以让外界修改成员变量值的方法,可以在我们的方法当中过滤一些不合理的参数
2.命名规范:
1>方法名必须以set开头
2>方法名后面跟上成员变量名称,成员变量的首字母必须大写
3>返回值一定是void
4>一定要接受一个参数,而且这个参数的类型一定跟我们的成员变量的类型一样
5>我们的参数名不能跟成员变量名一样
*/
/*
get方法(只读)
1.作用:返回对象内部的成员变量
2.命名规范:
1>肯定有返回值,返回值类型跟成员变量一致
2>方法名跟成员变量名一致
3>不要接受任何参数
*/
/*
成员变量的命名规范:一定要用下划线开头
作用:
1>让成员变量和get方法的名称区分
2>可以跟局部变量区分,一看到下划线就知道是成员变量
*/
- (void)setAge:(int)age;
- (int)age;
@end
Student.m
#import "Student.h"
@implementation Student
- (void)study
{
NSLog(@"%d岁的学生正在学习",_age);
}
- (void)setAge:(int)age
{
if (age <= 6)
{
age = 6;
}
_age = age;
}
- (int)age
{
int age;
// 局部变量:定义在某方法里面的变量,只能在该方法内使用
return _age;
}
@end
- (void)study;
网友评论