由于很长时间没写博客了,差点都荒废了。其实主要的原因是最近在做项目,没有太多的时间去写博客,不像以前
那样无忧无虑的学习技术了。不过虽然最近没怎么写博客,但是最近的水平进步还是不小的。由于对于java的体系学的
时间还可以了,有点厌烦了,再加上老师的推荐,所以最近准备转战Object-c的苹果开发,我记得讲java 的张龙老师也
是现在在做OC的开发,呵呵,程序员嘛,不能总在一棵树上面吊死,得多试几棵树才行,哈哈。反正我在大学的时间
也不是很多了,可能留给我的空闲的学习时间也不是很多了,那么现在只能说是去珍惜时光好好的去学习好最新的自己
想学习的技术了,也不枉费爸妈的一片苦心了,呵呵,好了,废话不多说,继续开始学习了,I am Back!!!
首先对于复合,就是将多个组建组合在一起配合使用,从而得到完整的作品的东西。在OC中,复合是通过包含作为
实例变量的对象指针来实现的。比如
@interface Car : NSObject
{
Engine *engine;
Tire *tires[4];
}
@end
每个对象都有一个description方法,这个方法就是使用NSString输出对象的时候所对应的字符串,你可以覆盖实现输出自己的东西。主要的代码如下
#import <Foundation/Foundation.h>
@interface Tire : NSObject
@end
@implementation Tire
- (NSString *) description{
return (@"i am a tire, i last a while");
}
@end
@interface Engine : NSObject
@end
@implementation Engine
- (NSString *)description{
return (@"i am a engine wuwuwuwu");
}
@end
@interface Car : NSObject
{
Engine *engine;
Tire *tires[4];
}
- (Engine *) engine;
- (void) setEngine: (Engine *) newEngine;
- (Tire *) tireAtindex : (int) index;
- (void) setTile: (Tire *) tile atindex: (int) index;
- (void) print;
@end
@implementation Car
- (Engine *)engine{
return engine;
}
- (void)setEngine:(Engine *)newEngine{
engine = newEngine;
}
- (void)setTile:(Tire *)tile atindex:(int)index{
if(index <0 || index> 3){
NSLog(@"bad index %d in setTire:atindex",index);
exit(1);
}
tires[index]=tile;
}
- (Tire *)tireAtindex:(int)index{
if(index < 0 || index > 3){
NSLog(@"bad index %d in tireAtIndex",index);
exit(1);
}
return tires[index];
}
- (void)print{
NSLog(@"%@", engine);
NSLog(@"%@", tires[0]);
NSLog(@"%@", tires[1]);
NSLog(@"%@", tires[2]);
NSLog(@"%@", tires[3]);
}
@end
@interface Slant6 : Engine
@end
@implementation Slant6
- (NSString *)description{
return (@"i am a slant-6 veoom");
}
@end
@interface AllWeatherRadial : Tire
@end
@implementation AllWeatherRadial
- (NSString *)description{
return (@"i am a tire for rain or shine");
}
@end
int main(int argc, const char *argv[]){
Car *car = [Car new];
Engine *engine = [Slant6 new];
[car setEngine:engine];
for(int i = 0; i < 4; i++){
Tire *tire = [AllWeatherRadial new];
[car setTile:tire atindex:i];
}
[car print];
return 0;
}
其实我对于这个两个参数的书写还不是太清楚怎么回事,而且对于文件的管理也不是很懂,呵呵,继续学习吧,现在又成为一个菜鸟了。
分享到:
相关推荐
本资源提供了一个基于Object-C语言实现列表选择功能的项目源码,旨在帮助开发者学习如何使用Object-C语言开发iOS应用中的列表选择...通过学习本资源,您将能够掌握Object-C语言实现iOS应用中列表选择功能的方法和技巧。
这篇文章为您呈现了一份详尽的Object-C语言学习资源概览,旨在帮助初学者和经验丰富的开发者系统地学习Object-C编程,并通过实践案例和项目资源提升实际编程能力。 文章首先聚焦于Object-C语言教程,这是学习Object...
Object-C语言教程 Object-C语言教程 Object-C语言教程 Object-C语言教程
Object-Oriented Programming with Object-C Object-C 进阶书籍---面向对象
7. Object-C的description方法 8. Object-C的异常处理 9. id类型 10. 类的继承 11. 动态判定与选择器 12. 类别Category 13. 协议@protocol 14. 内存管理 15. 常用的类型 16. 写入和读取属性 17. 对象的...
Object-C语言教程:Objective-C 简介
Object-C语言是一种面向对象的程序设计语言,常用于iOS和macOS应用程序的开发。在iOS开发中,经常需要将JSON数据转换为模型对象,以便更方便地处理数据。为了简化这一过程,开发者可以使用开源库"MJExtension"来实现...
object-c基础教程object-c基础教程object-c基础教程
Object-C_在iOS上使用Object-C进行RSA算法的加密+解密实现
Object-C语言教程0220.zipObject-C语言教程0220.zipObject-C语言教程0220.zipObject-C语言教程0220.zipObject-C语言教程0220.zipObject-C语言教程0220.zipObject-C语言教程0220.zip
Object-C语言实现列表选择项目源码.zipObject-C语言实现列表选择项目源码.zipObject-C语言实现列表选择项目源码.zip
类与对象:理解Object-C中类(Class)和对象(Object)的概念,学习如何定义类、创建对象以及使用对象的属性和方法。 继承与多态:掌握Object-C中的继承和多态机制,了解子类如何继承父类的属性和方法,并实现自己...
Object-C期末复习资料,包含多道题目助力期末复习,成功考试过关
EventBusObject-CVersion(EventBus的Object-C语言版本)
【Object-C】object-c入门基础 object-c入门基础 说明:object-c入门基础 object-c入门基础 (Object-c Start Basics) 文件列表: object-c入门基础.doc (27648, 2014-10-29) 【Object-C】object-c入门基础 object-c...
Object-C语言,用C语言实现面向对象
Objective-C主要用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,在NeXTSTEP和OpenStep中更是基本语言。此外,Objective-C也是为苹果iOS和OS X系统编写程序的语言,它能够编译和构建命令行功能、GUI以及领域...