什么是复合?什么又是冒泡排序?
复合其实很简单,就是将多个组件组合到一起,形成一个整体,然后使用整体来进行工作,这种组合行为称为复合,就比如以下这个例子:
七夕这天是情人节,首先你得有个情人才能过,而且还要是个美女,因为丑的你都不想见到她,又怎么会一起过呢?然后你得有一张帅气的脸庞,因为你不帅,美女是不会喜欢你的,然后你还得有钱,还得买玫瑰,看电影,请客吃饭,开房什么的。。。。这就是一个不可分割的组合,缺少任何一个环节你的七夕都过不下去。所以你要把这些元素组合在一起,形成一个整体,这个整体就是你完美的度过一天的情人节了。
在我们讲面向对象的时候已经降到过类和实例变量的概念,我们把复合的概念对应到Objective-C,就是一个类的成员变量是由其他的一些类组成的,即一个类包含了好几个其它的类。比如说,美女喜欢的帅哥,可以分为猛男,斯文,熊壮,柔弱的各种类型;帅哥喜欢的美女也可以分为萝莉,御姐,女王各类的;钱可以分为人民币,美元,欧元之类的。
实例操作:
import “Engine.h”
@implementation Engine
//重写description 方法
-(nsstring *)description
{
return@”我是一个引擎,我玩命工作!”;
}
@end
imort
import”Tire.h”
@implementation Tire
- (NSString *)description
- {
return@”我是一个轮胎,我诚恳的托起了整个车身。”;
}
@end
import
import “Engine.h”
import”Tire.h”
@interface Car:NSObject
{
@public
Engine *engine;//引擎
Tire *tiree[4];//四个轮胎
}
-(void)run;//汽车行驶的方法
@end
import”Car.h”
@implementation Car
-(void) run //汽车行驶的方法
{
NSLog@”%@\n”,engine;
for(int i = 0;i<4;i++){
NSLog(@”%@\n”,tires[i]);
}
@end
import
import”Engine.h”
import”Tire.h”
import”Car.h”
int main(int argc,const char * argv[])
{
@autoreleasepool{
Car*car = [Car new];
Engine *engine = [Tire new];
car->engine = engine;
for(int i = 0;i < 4;i++){
tire *tire = [Tire new];
car->tires[i] = tire;
}
[car run];
}
return 0;
}
冒泡排序就是重复地走走访过要排序的数列,一次比较两个元素,如果他们的排序错误就把他们交换过来,走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成,这个算法的名字由来是因为越大的元素会经由交换慢慢浮到数列的顶端,故名。