文档章节

OC的复合

 蒲公英6_6守候
发布于 2015/10/13 17:42
字数 429
阅读 3
收藏 0

在复合中 我认为比较重要多就是description;以下为详细讲解。
自定义对象描述(description)
1: 复合都是对象与对象的组合,为了能区分开各个对象,所以我们会需 要自定义描述(description)
2: 当使用NSLog()输出对象时,会输出该对象的描述。
3: 即NSLog给对象发送了一个description消息,然后对象的 description方法生成一个NSString并将其返回输出。

也就是组合,那也就是一个对象不是一个简单的个体,他都是很多对象在一起组合的,就比如说房子这个类,它是由窗户,地板,门,墙,--组合成的,然后大脑又有很多组合起来的,所以说万物皆对象,就是这么个道理,现在时节就是面向对象的世界,我们每天都要面对很多对象,用很多对象!

Window.h

#import <Foundation/Foundation.h>


@interface Window : NSObject

-(NSString*)win;

@end


Window.m

#import "Window.h"


@implementation Window

-(NSString *)win{

    return @"窗子";

}

@end


Door.h

#import <Foundation/Foundation.h>


@interface Door : NSObject

-(NSString *)door;

@end


Door.m


#import "Door.h"


@implementation Door

-(NSString *)door{

    return @"";

}

@end


Floor.h


#import <Foundation/Foundation.h>


@interface Floor : NSObject

-(NSString*)floor;

@end


 Floor.m

#import "Floor.h"


@implementation Floor

-(NSString *)floor{

    return @"地板";

    }

@end


House.h

#import <Foundation/Foundation.h>

#import "Window.h"

#import "Door.h"

#import "Floor.h"

@interface House : NSObject

{

    Window *_window;

    Door *_door;

    Floor *_floor;

}

-(void)setWindow:(Window *)windows;

-(void)setDoor:(Door *)doors;

-(void)setFloor:(Floor *)floors;

-(void)setHome;

@end

House.m


#import "House.h"


@implementation House


-(void)setWindow:(Window *)windows

{

    _window = windows;

}

-(void)setDoor:(Door *)doors

{

    _door = doors;

}

-(void)setFloor:(Floor *)floors

{

    _floor = floors;

}

-(void)setHome

{

    NSLog(@"这里有一个家,家的装饰都有:%@,%@%@",[_window win],[_door door],[_floor floor]);

}


@end


main.m



#import <Foundation/Foundation.h>

#import "Car.h"

#import "Engine.h"

#import "Type.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Car *newCar = [[Car alloc]init];

        Engine *newEngine = [[Engine alloc]init];

        Type *newType = [[Type alloc]init];

        [newCar  setEngine:newEngine];

        [newCar setType:newType];

        [newCar setCar];

        

        

    }

    return 0;

}


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 15
码字总数 7681
作品 0
西安
swift的数据类型到底是什么尿性 (说点别人没讲明白的)

文初: 如果你对swift的些许了解只局限在 swift中的类型使用struct取代class 多了Optional可选类型 这些最基础的认知,而对其底层设计的原因和原理了解甚少,那这篇文章会给你新的视角,让你...

CoderDancer
2017/08/22
0
0
【非凡程序员】 OC第四节课 (复合和多态)

1.复合:是将各个部分组合在一起。程序设计中就是用已有类的对象来产生新的类。 编程中的复合就是将多个组件组合在一起,配合使用,从而得到完整的作品。 发动机是汽车的组成部分 -> 复合 飞...

七月流火zsp
2015/05/17
0
0
JAVASCRPIT的OpenCharts

一、Introduce/简介 OpenCharts是基于HTML Canvas技术的采用面向对象的Web图表,通过OpenCharts,你可以方便的制作一系列漂亮的Web图表。现在我们支持8种类型的图表表达方式,你可以通过帮助...

0了凡0
2016/09/10
18
0
Javascript charts--OpenCharts

一、Introduce/简介 OpenCharts是基于HTML Canvas技术的采用面向对象的Web图表,通过OpenCharts,你可以方便的制作一系列漂亮的Web图表。现在我们支持8种类型的图表表达方式,你可以通过帮助...

bjfubjfu
2012/12/14
5.8K
1
iOS进阶补完计划-WebViewJavascriptBridge实现原理

提及其原理、所有用过它的童鞋都会说他在js和Native(原生)之间搭建了一个桥梁。通过这个桥、使他们相互通信。但具体怎么通信呢?这个桥如何工作?十有八九说却不清。 JSBridge的逻辑简而言...

kirito_song
2017/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 恨不得给你买张飞机挂票

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席灵魂师:分享张希/曹方的单曲《认真地老去》 来不及认真的年轻过,就认真的老去! 《认真地老去》- 张希/曹方 手机党少年们想听...

小小编辑
10分钟前
8
3
如何实现靠谱的分布式锁?

分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够...

郑加威
59分钟前
0
0
Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部