OC ---封装与方法

来源:互联网 发布:mac储存位置更改 编辑:程序博客网 时间:2024/06/05 03:20
首先创建一个类, 包括类的声明和类的实现
初始化类中的实例变量:
     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 = [super init];
   
//当父类的初始化方法完成之后, 再对自身的实例变量赋值.
   
if (self) {
       
//赋值
       
//初始化操作依然还是赋值操作, 只不过是在初始化时期完成赋值.
       
_name = name;
       
_sex = sex;
       
_age = age;
       
_height = height;
       
_weight = weight;
    }
   
//返回
   
return self;//此时的self 是对实例变量赋完值之后的self
}
针对于实例变量的可见度:
如果没有写,表示默认为@protected, 受保护的 ,在本类,子类中能够访问到, 其他类访问不到
@public,  公开的, 在本类, 子类, 其他类都能访问到, 违背了封装的概念
@private 私有的,只能在本类中访问到, 违背了继承的概念
为了不违背封装和继承的理念, 系统默认为@protect,所以我们不能直接使用对象访问实例变量,而是采用对象方法, 通过方法对实例变量进行赋值修改.关于该类方法,可以通过setter方法 进行赋值,通过getter方法获取到通过setter方法重新赋值的实例变量.
setter方法返回值类型为void, 参数类型是我们想要得到的实例变量的类型, 在实现中实将传入的参数赋给实例变量.
getter方法返回值类型是我们想要得到的实例变量的类型,没有参数,只是在实现中通过return得到返回值.
但是getter方法(设置器)和getter(访问器)只能对单一实例变量进行赋值和获取,繁琐.
采用多参赋值可以一次性对多个实例变量进行赋值,不属于getter方法,但是获取实例变量只能采用getter方法,一个个的获取.多参赋值返回值类型为void,参数类型为实例变量的类型
以上都是对象调用的方法 — 减号- 方法
+ 号方法是类调用的方法, 以 + 开头,除此,形式与对象方法一样.
0 0
原创粉丝点击