OC ---封装与方法

首先创建一个类, 包括类的声明和类的实现
初始化类中的实例变量:
     1.重写init方法, init方法来自于根类.重写init方法时方法名与原本的init一样,只是在init实现中,对实例变量进行赋值. 但是重写init相当于只进行一次赋值,新建的对象的实例变量的初值都一样,一般不采用
     2.自定义init方法, 自定义方法以init开头, 之后跟单词With.注意: W 要大写, 自定义方法中实例变量作为方法的返回值,使用self返回多个值, self 在实例方法中 , 代表调用该方法的对象.自定义完成之后在创建新的对象的时候可以根据传得参数的不同得到不同的初始化内容.
自定义init方法中self用法举例
- (id)initWhithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age height:(CGFloat)height weight:(CGFloat) weight {
   
//self 在实例方法中,代表调用该方法的对象
   
//super 调用父类对某一个方法的实现.
   
self = [superinit];
   
//当父类的初始化方法完成之后,再对自身的实例变量赋值.
   
if (self) {
       
//赋值
       
//初始化操作依然还是赋值操作,只不过是在初始化时期完成赋值.
       
_name = name;
       
_sex = sex;
       
_age = age;
       
_height = height;
       
_weight = weight;
    }
   
//返回
   
returnself;//此时的self是对实例变量赋完值之后的 self
}
针对于实例变量的可见度:
如果没有写,表示默认为@protected,受保护的 ,在本类,子类中能够访问到,其他类访问不到
@public, 公开的,在本类, 子类,其他类都能访问到, 违背了封装的概念
@private 私有的 , 只能在本类中访问到, 违背了继承的概念
为了不违背封装和继承的理念, 系统默认为@protect,所以我们不能直接使用对象访问实例变量,而是采用对象方法, 通过方法对实例变量进行赋值修改.关于该类方法,可以通过setter方法 进行赋值,通过getter方法获取到通过setter方法重新赋值的实例变量.
setter方法返回值类型为void, 参数类型 是我们想要得到的实例变量的类型 , 在实现中实将传入的参数赋给实例变量.
getter方法返回值类型是我们想要得到的实例变量的类型,没有参数,只是在实现中通过return得到返回值.
但是getter方法(设置器)和getter(访问器)只能对单一实例变量进行赋值和获取,繁琐.
采用多参赋值可以一次性对多个实例变量进行赋值,不属于getter方法,但是获取实例变量只能采用getter方法,一个个的获取.多参赋值返回值类型为void,参数类型为实例变量的类型
以上都是对象调用的方法 — 减号- 方法
+ 号方法是类调用的方法, 以 + 开头,除此,形式与对象方法一样.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值