面向对象的三大特性

2019-03-11  本文已影响0人  AmberAlbee

封装 继承 多态


封装

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


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

上一篇 下一篇

猜你喜欢

热点阅读