文档章节

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
西安
私信 提问
程序员面试闪充 -- KVC&KVO

一、键值编码KVC kvc&kvo视频讲解 1、介绍 由于oc的语言特性,使得开发者根本不必进行任何操作就可以进行属性的动态读写,这种方式就是Key Value Coding(简称KVC)。 KVC的操作方法由NSKey...

阡陌有客
03/20
0
0
swift的数据类型到底是什么尿性 (说点别人没讲明白的)

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

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

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

七月流火zsp
2015/05/17
0
0
swift4.1 学习回顾(1--8)

这本四百多页的书,花了差不多两个月(9.20——11.8)的时间终于看完了。因为我之前一直是OC语言的使用者,转Swift并不困难,且现在的项目也是Swift语言,差不多写了有一年了。这一次的学习是因...

小曼Study
11/09
0
0
JAVASCRPIT的OpenCharts

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

0了凡0
2016/09/10
18
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要学习Python?这10个理由足够了!

摘要: 看完这十个理由,我决定买本python从入门到精通! 如果你定期关注现今的科技发展,那么你可能想知道我为什么要写这篇文章告诉人们学习Python?因为几年前我提倡Java而不是Python。 在...

阿里云官方博客
20分钟前
2
0
spring服务方式配置okhttp3

问题 如果把OKhttp以Spring服务方式配置,就解决了从配置中心运行时刷新配置参数的问题。 OkHttpConfig.java package com.zyl.config;import okhttp3.OkHttpClient;import org.springfra...

亚林瓜子
20分钟前
2
0
8张图让你一步步看清 async/await 和 promise 的执行顺序

**摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3749 Fundebug经授权转载,版权归原作者所有。 为什么写这篇文章? 说实话,关于js的异步执行顺...

Fundebug
21分钟前
1
0
Linux 命令菜单

#!/bin/bash #menu.sh menu(){ source ~/.bashrc echo "=================================" echo "Please enter your choise:" echo "(0) Kill all java" echo "(1) Start all tomcat" echo......

mellen
27分钟前
3
0
原来云数据库也是有思想的...

本文由一刻talks发表 邵宗文,腾讯云数据库专家副总监。十余年数据库从业经验,2009年加入腾讯,曾负责腾讯网,新闻客户端,快报,视频,财经,体育等数据库平台部署、规划及运维支持工作。本...

腾讯云加社区
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部