OC学习记录3:类
来源:互联网 发布:阿里云服务器有发票吗 编辑:程序博客网 时间:2024/06/06 00:05
自定义类
{
float _heightInMeters;
int _weightInKilos;
}
创建abc.h以及abc.m文件,在.h文件中,在.h文件中定义实例变量。
-(float)heightInMeters;
-(void)setHeightInmeters:(float)h;
-(int)weightInKilos;
-(void)setWeightInkilos:(int)w;
-(float)bodyMassIndex;
继续在.h文件中创建实例方法,-( )中标明实例方法返回值的类型,:后面表示传入次类方法的参数。
- (float)heightInMeters
{
return _heightInMeters;
}
- (void)setHeightInmeters:(float)h
{
_heightInMeters = h;
}
在.m文件中创建实例方法的具体执行语句,其中heightInMeters属于取方法,可以读取实例变量的值。而setHeightInmeters是存方法,可以为相应的实例变量赋值。
属性
@property (nonatomic) float heightInMeters;
@property(nonatomic) int weightInKilos;
这里没用使用存取方法,而是直接定义了nonatomic这一属性,通过这个属性系统会自动给方法增加存方法和取方法。还有其他属性,例如readwrite(读写属性),由于读写属性是默认属性所以不需要特别说明(原子型是默认属性)。使用属性可以简化代码。
继承
@interface class : NSObject
@interface class : abc
不同类之间可以相互继承,例如之前的示例我们自定义的abc类在创建文件时xcode默认继承NSObject类(在abc.h中会自动创建第一条代码),这时候我们再新建一个qwe类,在创立类的时候将默认的NSObject类改为abc类(在qwe.h中会自动创建第二条代码),这样的话qwe类则可以拥有abc类所有的方法和属性,但是qwe类中的属性和方法不会出现在abc类中。同样因为abc类继承NSObject类,所以qwe类可以认为同样继承NSObject类。
覆盖方法
-(float) bodyMassIndex
{
return 19;
}
在子类中,可以覆盖母类继承下来的方法。可以直接在.m文件中直接引用母类的方法并且覆盖(即修改此方法返回的结果)。
Super
- (float) bodyMassIndex
{
float normalBMI = [super bodyMassIndex];
return normalBMI * 0.9;
}
前面提到了覆盖方法,那么如何引用并改变母类方法返回结果呢,这里就要用到super指令,使用super指令可以在子类中引用并修改母类方法返回的结果。
- OC学习记录3:类
- OC学习记录
- OC学习记录160223
- xcode and oc 学习记录
- OC学习-个人习惯记录
- OC学习记录2:数组
- OC学习记录1:类方法与实例方法
- Ios学习-oc学习1记录
- OC基础学习记录(一)
- OC类的使用记录
- my学习OC--类
- OC学习笔记之OC类你好
- OC编程语言学习-3
- oc 学习(3) 字符串方法
- OC学习之路(3)
- OC语言中的类学习
- OC基础记录
- swift-oc 交互记录
- velocity模板 If / ElseIf / Else语法
- java非法字符u201c
- Android Studio如何将so文件添加到svn中
- uart
- 移动端长连接
- OC学习记录3:类
- jquery操作大全
- mysql索引的创建和使用
- HDU1535:Invitation Cards(最短路)
- request获取服务器参数
- 浅谈FreeMarker
- 机器学习之递归神经网络RNN实现二进制加法
- Hadoop之Eclipse开发环境搭建
- vs2010程序运行出错 link : fatal error lnk1123: 转换到 coff 期间失败: 文件无效或损坏