复合(composition):将多个对象联系在一起以完成想要的功能。
在oc中,复合式通过包含作为实例变量的对象指针实现的。
@interface Unicyle : NSObject
{
Pedal *pedal;
Tire *tire;
}
@end //Unicyle
存取(accessor)方法是用来存取或改变某个对象属性的方法。如果要对其他对象中的属性进行操作,应该尽量使用对象提供的存取方法,绝对不能直接改变对象里面的值。那是不安全的,其实就是set和get。
- (void) setFire: (Tire*) tire atIndex: (int) index;
/*这里的方法名称是 setFire:atIndex:,方法名分段是为了对参数有更好的描述,比如C++中的一个方法IsRight(int. bool),在进行调用时IsRight(10, false),这样很难判断每个参数有什么具体含义,所以oc中会把每个参数都再方法中描述进去,这样更容易理解。这里的方法在调用的时候会是这个样子的[car setFire:tire atIndex:i],这样参数的意义就比较好理解了*/
在oc中所有对象间的交互都是通过指针实现的。
“Cannot find interface declaration for Tire”(无法找到Tire类的接口定义)之类的错误信息,通常是因为你忘记了用#import导入该类的头文件了。
通常,每个类都有两个文件:包含类@interface部分的头文件和包含@implementation部分的m文件。类的使用者可以通过#import命令导入头文件来获取该类的功能。
使用@class指令告诉编译器这是一个类。
时间: 2024-10-13 00:41:41