如何修改和访问方法中受保护的实例变量

1.实例变量的可见度有三种.

公共的(public) 实例变量可以在类的内部和外部操作。

受保护的(protected)实例变量只能在该类的内部及其子类中进行操作

私有的(private)实例变量只能在该类的内部操作。

2.修改方法中受保护的实例变量

首先在.m中实现赋值的方法,对实例变量进行赋值,实例变量对象 = 方法中的参数名,然后可以调用此方方法传入参数。

.m中

- (void)fixgAge:(int)age withweight:(int)weight andheight:(int)height{

    _age = age;
    _weight = weight;
    _height = height;
}

.main中

Person *x = [[Person alloc] init];

[x fixgAge:18 withweight:45 andheight:160];

3.使用set和get方法访问

setter 和 getter 方法
         在OC里为实例变量赋值的方法为称作 (设置器 )setter.
         读取实际变量的方法被称做 (访问器) getter.
         setter 的书写格式:- (void)setAge:(int)age;即set加上首字母大写的实例变量名(忽略下划线)
         getter 的书写格式:- (int)age;即返回值类型与变量类型一致,方法名与实例变量名相同(忽略下划线)

.h中

- (void)setName:(NSString *)name;
- (NSString *)name;
 .m中

  - (void)setName:(NSString *)name{

    _name = name;

}
- (NSString *)name{

   return _name;

}      
4. OC中方法分为两种
         .类方法 : 类方法只能类去使用,例如 + (id)alloc;类方法中不能使用实例变量
         .实例方法 :只能对象使用,例如 — (void)hello;
         - (void)replaceObjectAtIndex:(NSUInteger无符号整型)index withObject:(id)anObject;
         ( “-” 方法类型标识符)
         ((void)方法返回值类型)
         (repalaceObjectAtIndex:withObject: 方法名)
         ((NSUInteger),(id) 都是参数类型)
         ((index)(anObject))参数名字。
        
         方法名是:
         删除了类标识符,返回值类型,参数类型,参数名,空格后剩下的就是方法名
         类中不能出现同名方法
         “:”标识参数,不能省略。有冒号必须有参数

5.#import #include @class的区别
         导入头文件,即导入头文件中的内容到当前类
         #import "" 导入自定义类,#import <> 导入类库中的头文件。功能类似C语言的include,但是可以避免头文件被重复导入。#import 容易出现循环导入头文件问题。
         @class:告诉编译器@class后的字符串作为类名使用,并未导入类的接口内容。
         有效避免嵌套循环导入。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值