面向对象的三大特性

封装 继承 多态


封装

封装是面向对象的特征之一,是对象和类概念的主要特性。也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐封装是面向对象的特征之一,是对象和类的主要特性。




封装 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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容