Objective - C基础: 第二天 - 1.封装思想初认识之set和get方法
来源:互联网 发布:淘宝限时抢购在哪里 编辑:程序博客网 时间:2024/06/10 02:55
前言
在第一天里面, 我们知道了类, 对象, 方法, 还有一些基础知识, 到了第二天, 我们继续往下来慢慢学习, 只有耐心的学习, 才能学的好, 否则就像没有基座的塔一样, 倒了~
开始
在之前的例子里, 我们都知道怎么声明成员变量, 但如果要去访问成员变量的话, 就必须得写一个@public才能访问, 否则编译器会报错, 那么为什么会这样子呢? 下面让我们来慢慢解释:
在OC中, 在.m文件里声明的成员变量都是属于私有的, 也就是受保护的, 如果没有写@public, 那么就只有通过特殊的手段才能访问, 那么如何访问呢? 下面让我们来看看例子:
#import <Foundation/Foundation.h>@interface Preson : NSObject{ int age;}- (void)test;@end@implementation Preson- (void)test{ NSL(@"一个%d岁的人在走路.", age);}@endint main(){ Preson *p = [Preson new]; p->age = 20; [p test]; return 0;}
这里我没有写@public, 所以输出的结果是:
1.封装思想.m:13:5: warning: implicit declaration of function 'NSL' is invalid in C99 [-Wimplicit-function-declaration] NSL(@"一个%d岁的人在走路.", age); ^1.封装思想.m:20:8: error: instance variable 'age' is protected p->age = 20; ^1 warning and 1 error generated.
编译器会报错, 说age这个成员变量被保护, 无法访问, 但我们之前也知道了, 不能在声明成员变量的时候给它赋值, 那么我们该怎么做呢?? 让我们继续往下看~~
在OC中, 有一种专门的方法来解决存取成员变量的方法, 它们就是Set方法和Get方法, 什么是Set方法? 什么是Get方法? 下面让我们一起来看看:
Set方法:
#import <Foundation/Foundation.h>@interface Preson : NSObject{ int age;}- (void)test;- (void)setAge:(int)newAge;@end@implementation Preson- (void)test{ NSLog(@"一个%d岁的人在走路.", age);}- (void)setAge:(int)newAge{ age = newAge;}@endint main(){ Preson *p = [Preson new]; [p setAge:20]; [p test]; return 0;}
这样子我们就可以把我们想要的值存入进去啦, 但还有一个问题, 我把值存进去了, 那如果我想取出来呢?? 这又要怎么取? 继续往下看:
Get方法:
#import <Foundation/Foundation.h>@interface Preson : NSObject{ int age;}- (void)test;- (void)setAge:(int)newAge;- (int)age;@end@implementation Preson- (void)test{ NSLog(@"一个%d岁的人在走路.", age);}- (void)setAge:(int)newAge{ age = newAge;}- (int)age{ return age;}@endint main(){ Preson *p = [Preson new]; [p setAge:20]; [p test]; NSLog(@"一个%d岁的人在走路.", [p age]); return 0;}
通过上面这个Get方法, 我们就可以取到我们存进去的值了~~~其实这个Set方法和Get方法是一种间接式的存取方法, 非常好用~~下面是它们的解释以及注意的事项:
Set方法
1.作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
2.命名规范:
1>方法名必须以set开头
2> set后面跟上成员变量的名称,成员变量的首字母必须大写
3>返回值一定是void
4>一定要接收一个参数,而且参数类型跟成员变量类型一致
5>形参的名称不能跟成员变量名一样
Get方法
1.作用:返回对象内部的成员变量
2.命名规范:
1>肯定有返回值,返回值类型肯定与成员变量类型一致
2>方法名跟成员变量名一样
3>不需要接收任何参数
- Objective - C基础: 第二天 - 1.封装思想初认识之set和get方法
- 【Objective-C】04-OC对象成员变量的封装规范:get方法和set方法
- 黑马程序员------[Objective-C]set方法和get方法
- 黑马程序员——Objective-C学习之set方法和get方法
- 关于objective-c中的set和get方法
- Objective - C基础: 第二天 - 4.类方法的简单认识
- Objective-c set方法,get方法
- Objective - C基础: 第二天 - 2.封装练习以及注意事项
- Objective-C(二、类与isa指针,类的封装,set&get,类方法,对象方法)——iOS开发基础
- 黑马程序员--- objective-c 封装 set与get
- @property参数-set,get方法-setter,getter方法,-Objective-C基础-IOS001
- C#set和get方法
- OC基础-零基础学习Objective-C:第二部分.封装、继承和多态
- Objective - C基础: 第二天 - 5.类方法的练习
- OC基础—————类型的可见度,封装,自定义方法, set 和 get
- Object-C之set方法,get方法
- objective-c set/get方法(自定义自己的set/get方法)
- objective-c自学总结(二)---init/set/get方法
- 看到比较全的sprint
- 把eclipse设置为黑色主题
- 工作中的oracle常用维护
- LINUX内核升级 - 更新硬盘驱动
- mysql 插入不了中文
- Objective - C基础: 第二天 - 1.封装思想初认识之set和get方法
- Unity回顾3
- 线性变换之缩放
- 华为OJ 201301 JAVA题目0-1级
- ios使用代理的时候一定要用weak
- 信息类专业国际会议/期刊影响因子汇总
- SharedPreferences的使用
- android out of memory(OOM)产生原因
- 黑马程序员——Java基础---抽象类和接口的区别