进击的KFC:OC(二)实例变量可见度、方法、setter、getter
来源:互联网 发布:大q吧数据 编辑:程序博客网 时间:2024/05/18 00:58
(一)实例变量可见度
可⻅度 特点
public(公有的) 实例变量可以在类的外部和内部操作
protected(受保护的默认的) 实例变量只能在该类和其⼦类内 操作
private(私有的) 实例对象只能在该类内访问
所谓的内部,指的是相应类的@implementation 和@end之间
⽰例:
@interface Person : NSObject
{
@public
NSString *_hobby; //兴趣
@protected
NSString *_name; //姓名
int _age; //年龄
@private
NSString *_sex; //性别
}
@public下的可见度,在mian方法中,实例变量可以访问
Person * p = [[Person alloc] init];
p -> _hobby = @“听⾳乐、看电影”;
NSLog(@”⼈的兴趣:%@”,p -> _hobby);
@protected下的可见度,在main方法中,实例变量不可访问
@private下的可见度,在main方法中,实例变量
思考:
为什么不使⽤@public?
1、使⽤@public关键字,暴露了类内部的细节。
2、不符合⾯向对象语⾔的三⼤特性之⼀ — 封装
如何在其他⽂件中访问对象@protected修饰的实例变量?
例如:如何在mian.m⽂件中设置p的_name,读取p的_name。
提⽰:添加两个⽅法。
赋值:通过⽅法传⼊参数,在类的内部实现实例变量赋值。
取值:通过⽅法获取实例变量的值
(二)方法
OC中方法分为两种:类方法 和 实例方法
类⽅法:只能类使⽤,例如:+(id)alloc 注:类⽅法中不能使⽤
实例变量
实例⽅法:只能对象使⽤,例如: -(void)sayHi
方法的声明:
方法名:
删除:类型标识,返回类型,参数类型,参数名,空格。例如:
replaceObjectAtIndex:withObject:
类中不能出现同名⽅法。
“ : ” 标识参数,不能省略。有冒号必须有参数。
赋值、取值⽅法 set get 方法
在OC⾥,为实例变量赋值的⽅法称作setter (设置器)。
读取实例变量值的⽅法称作getter(访问器)。
我们之前写的那些赋值取值的⽅法都可以称作setter和getter。
OC⾥规定了setter和getter的书写格式。
如果⼀个实例变量是int age;或者int _age;
setter的书写格式如下:- (void)setAge:(int)age;即set+⾸字⺟⼤
写的实例变量名(忽略下划线)。
getter的书写格式如下: - (int)age;即返回值类型与变量类型⼀
致,⽅法名与实例变量名相同(忽略下划线)
(三)总结:
实例变量有3种常⻅的可⻅度:@public、@protected、@private。
@public违背了封装特性,⾯向对象开发中很少使⽤;@protected默
认可⻅度,⾃⼰和⼦类中能使⽤—>访问实例变量;@private⾃⼰类
中能使⽤—>访问实例变量。
⽅法是OC的核⼼,采⽤消息机制:[receiver message]。
“-”message由对象来调⽤;“+”message由类来调⽤。
- 进击的KFC:OC(二)实例变量可见度、方法、setter、getter
- OC实例变量可见度 setter方法和getter方法
- day2:实例变量可见度、方法、setter、getter
- OC中实例变量可见度、setter、getter方法和自定义初始化方法
- OC第二天-实例变量可见度,setter和getter方法,导入头文件
- 实例变量可见度和方法(setter,getter 方法)
- 1.实例变量可见度2.方法3.setter, getter
- iOS开发学习第十四课——实例变量可见度、方法、setter、getter
- OC 实例变量的可见度
- 进击的KFC:OC概述、面向对象编程、类和对象、实例变量操作
- OC学习(二)实例变量的可见度和几种常用方法
- OC之实例变量可见度和方法
- 进击的KFC:OC(六)Block
- oc中实例变量的三种可见度/oc中的方法
- OC之实例变量可见度
- 二、oc中的setter与getter方法以及点语法
- OC类的构造函数,析构函数与setter/getter属性实例方法
- 《ios_oc》重复引用、交叉引用、可见度、方法,setter、getter、自定义初始化init的修改
- TouchSwipe在Android设备上的pageX和PageY为0的问题
- HFSS 微带线特性阻抗仿真
- heat中stack锁的实现原理
- UML第三集
- Android 资源管理利器Resources和AssetManager介绍
- 进击的KFC:OC(二)实例变量可见度、方法、setter、getter
- bzoj3449【Usaco2014 Feb】Secret Code
- Windows echo 命令
- 中国大学MOOC-陈越、何钦铭-数据结构 Insertion or Heap Sort
- 自定义TabBar以及TabBar上的TabBarButton可以实现自动切换
- springMVC框架在js中使用window.location.href请求url时IE不兼容问题解决
- iOS笔记UI--普通传值(正向传值)
- Linux 学习(1)-- 查看内核版本号及android系统属性
- 【Leetcode】之Roman to Integer