文档章节

OC的复合

 蒲公英6_6守候
发布于 2015/10/13 17:42
字数 429
阅读 3
收藏 0
点赞 0
评论 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
西安
关于继承和组合

关于继承和组合,之前学JAVA的时候一直未能很好的体会,Thinking in java 是个大部头,看着就慌,如今看OC的时候突然顿悟了,因为书上的例子举得很好 呵呵。 以下内容摘录自书上第5章,结合本...

扶殊88 ⋅ 2012/04/06 ⋅ 0

OC学习笔记七 判断结构

OC 提供以下判断 1.if 2.switch 3.conditional 一.if 语句 if 是OC 提供的一种常用判断语句,语句格式如下 if(expression) program statemen if 语句根据指定条件,限制程序执行例如 if(c...

卧龙小 ⋅ 2014/09/22 ⋅ 0

swift的数据类型到底是什么尿性 (说点别人没讲明白的)

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

CoderDancer ⋅ 2017/08/22 ⋅ 0

JAVASCRPIT的OpenCharts

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

0了凡0 ⋅ 2016/09/10 ⋅ 0

【非凡程序员】 OC第四节课 (复合和多态)

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

七月流火zsp ⋅ 2015/05/17 ⋅ 0

Javascript charts--OpenCharts

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

bjfubjfu ⋅ 2012/12/14 ⋅ 1

iOS进阶补完计划-WebViewJavascriptBridge实现原理

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

kirito_song ⋅ 2017/12/19 ⋅ 0

Swift 4.0 基础学习总结(一)

Swift简介 作者:Chris Lattner Swift 2010年7月开始设计,1年时间完成基本架构,经历4年开发期于WWDC 2014 苹果2014年开发者大会发布,用于撰写OS X和iOS应用程序。 特点: 语法简单,代码简...

xx_cc ⋅ 2017/11/20 ⋅ 0

设计模式-实现对象的复用——享元模式

享元模式概述 当一个系统中运行时产生的对象数量太多, 将导致运行代价过高, 带来系统性能下降的问题. 享元模式: 运用共享技术有效的支持大量细粒度对象的复用. 系统只使用少量的对象, 而这些...

hell03W ⋅ 2016/12/09 ⋅ 0

AppCode 2016.2.3 发布,支持 Swift3 的特性

AppCode 2016.2.3 (build 162.2380.5)发布了,AppCode 是一个全新的 Objective-C、Swift 的集成开发环境,用于帮助开发 Mac、iPhone 和 iPad 的应用程序。部分更新内容如下: 对于 Swift3...

局长 ⋅ 2016/10/20 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NFS介绍 NFS服务端安装配置 NFS配置选项

NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导...

lyy549745 ⋅ 22分钟前 ⋅ 0

Spring AOP 源码分析 - 筛选合适的通知器

1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析。本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出合适的通知器(Advisor...

java高级架构牛人 ⋅ 45分钟前 ⋅ 0

HTML-标签手册

标签 描述 <!--...--> 定义注释。 <!DOCTYPE> 定义文档类型。 <a> 定义锚。超链接 <abbr> 定义缩写。 <acronym> 定义只取首字母的缩写。 <address> 定义文档作者或拥有者的联系信息。 <apple......

ZHAO_JH ⋅ 47分钟前 ⋅ 0

SylixOS在t_main中使用硬浮点方法

问题描述 在某些使用场景中,应用程序不使用动态加载的方式执行,而是跟随BSP在 t_main 线程中启动,此时应用代码是跟随 BSP 进行编译的。由于 BSP 默认使用软浮点,所以会导致应用代码中的浮...

zhywxyy ⋅ 54分钟前 ⋅ 0

JsBridge原理分析

看了这个Github代码 https://github.com/lzyzsd/JsBridge,想起N年前比较火的Hybrid方案,想看看现在跨平台调用实现有什么新的实现方式。代码看下来之后发现确实有点独特之处,这里先把核心的...

Kingguary ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧五-真正常用快捷键(收藏级)

如果你觉得前面几篇博文太啰嗦,下面是博主多年使用Intellij IDEA真正常用快捷键,建议收藏!!! sout,System.out.println()快捷键 fori,for循环快捷键 psvm,main方法快捷键 Alt+Home,导...

Mkeeper ⋅ 今天 ⋅ 0

Java 静态代码分析工具简要分析与使用

本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能、特性等方面对它们进行分析和比较,...

Oo若离oO ⋅ 今天 ⋅ 0

SpringBoot自动配置小记

spring-boot项目的特色就在于它的自动配置,自动配置就是开箱即用的本源。 不过支持一个子项目的自动配置,往往比较复杂,无论是sping自己的项目,还是第三方的,都是如此。刚接触会有点乱乱...

大_于 ⋅ 今天 ⋅ 0

React jsx 中写更优雅、直观的条件运算符

在这篇文字中我学到了很多知识,同时结合工作中的一些经验也在思考一些东西。比如条件运算符 Conditional Operator condition ? expr_if_true : expr_if_false 在jsx中书写条件语句我们经常都...

开源中国最帅没有之一 ⋅ 今天 ⋅ 0

vim编辑模式与命令模式

5.5 进入编辑模式 从编辑模式返回一般模式“Esc” 5.6 vim命令模式 命令 :“nohl”=no high light 无高亮,取消内容中高亮标记 "x":保存退出,和wq的区别是,当进入一个文件未进行编辑时,使...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部