OC中实例变量可见度、setter、getter方法和自定义初始化方法

本文讲解了Objective-C中实例变量的可见度、setter与getter方法的使用,以及类方法和实例方法的区别。并通过实例介绍了自定义初始化方法的实现。

在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识

实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特点如下:

wKioL1UmYdLC3ue8AAP6rVxaaFM360.jpg

具体的使用示例如下:

wKioL1UmYfPTA0OKAAKdQN1OHhM115.jpg


编程时默认的可见度是@protectde,为什么不使用@public呢?

因为OC是面向对象编程,使用@public关键字,暴漏了类内部的细节,从而不符合面向对象语言的三大特性之一——封装

实例变量经过@protectde修饰之后,我们就不能在该类和其子类外操作,例如mian.m文件。那么我们如何才能在mian.m文件中设置person的_name,读取person的_name。

这就需要我们去添加两个方法即setter和getter方法

在OC里,为实例变量赋值的方法成为setter(设置器)

读取实例变量值的方法称为getter(访问器)

赋值(setter):通过方法传入参数,在类的内部实现实例变量的赋值

取值(getter):通过方法获取实例变量的值

OC里规定了setter和getter的书写格式

如果一个实例变量是int age;或者int_age;

setter的书写格式如下: - (void)setAge:(int)age;即set + 首字母大写的实例变量名(忽略下划线)

getter的书写格式如下: - (int)getAge;即返回值类型与变量类型一致,方法名与实例变量名相同(忽略下划线)


具体示例如下:

Person.h文件中:

wKioL1UmYhiBfq3qAACM3svmQhQ170.jpg

Person.m文件中:

wKiom1UmYN7jjnxVAADLzaAB1i0680.jpg

多参方法:

wKiom1UmYQeAmLqzAAE4TnTS-fU036.jpg



OC中的方法分为两种:类方法和实例方法

类方法:只能类使用,例如:+ (id) alloc 注:类方法中不能使用实例变量

实例方法:只能对象使用,例如:_(void)sayHi

wKioL1UmYnPx3MAbAAIl7Mk-r08515.jpg

类中不能出现同名方法

“ :”标识参数,不能省略。有冒号必须有参数

方法的使用

wKioL1UmYqKjKxxYAAHTO031vZs290.jpg



自定义初始化方法

h文件中:

wKiom1UmYePQ6auYAACRb_-f4pA462.jpg

m文件中:

wKioL1UmY2KRPo52AAF8lZR2c5s450.jpg


#import

导入头文件,即:导入头文件中的内容到当前类。

#import“”导入自定义类。#import<>导入类库中的头文件

功能类似C语言中的#include,但是可以避免文件被重复导入


本文出自 “Running2snail” 博客,请务必保留此出处http://496668219.blog.51cto.com/9922692/1630669

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值