OC 复合 组装电脑
键盘类
#import <Foundation/Foundation.h>
@interface Keyboard : NSObject
@property(strong,nonatomic)NSString *brand;
@end
#import "Keyboard.h"
@implementation Keyboard
- (NSString *)description
{
return [NSString stringWithFormat:@"%@", _brand];
}
@end
鼠标类
#import <Foundation/Foundation.h>
@interface Mouse : NSObject
@property(strong,nonatomic)NSString *brand;
@end
#import "Mouse.h"
@implementation Mouse
- (NSString *)description
{
return [NSString stringWithFormat:@"%@", _brand];
}
@end
显示屏类
#import <Foundation/Foundation.h>
@interface Displayer : NSObject
@property(strong,nonatomic)NSString *brand;
@end
#import <Foundation/Foundation.h>
@interface Displayer : NSObject
@property(strong,nonatomic)NSString *brand;
@end
机箱类
#import <Foundation/Foundation.h>
@interface Engine : NSObject
@property(strong,nonatomic)NSString *brand;
@end
#import "Engine.h"
@implementation Engine
- (NSString *)description
{
return [NSString stringWithFormat:@"%@", _brand];
}
@end
电脑类
#import <Foundation/Foundation.h>
#import "Keyboard.h"
#import "Mouse.h"
#import "Displayer.h"
#import "Engine.h"
@interface Computer : NSObject
@property(strong,nonatomic)Mouse *mouse;
@property(strong,nonatomic)Keyboard *keyboard;
@property(strong,nonatomic)Displayer *displayer;
@property(strong,nonatomic)Engine *engline;
-(void)run;
@end
#import "Computer.h"
#import "Keyboard.h"
#import "Mouse.h"
#import "Displayer.h"
#import "Engine.h"
@implementation Computer
- (instancetype)init
{
self = [super init];
if (self) {
Mouse *mouse= [[Mouse alloc] init];
mouse.brand=@"BENQ";
self.mouse=mouse;
Keyboard *keyboard=[Keyboard new];
keyboard.brand=@"BENQ";
self.keyboard=keyboard;
Displayer *displayer=[Displayer new];
displayer.brand=@"SUMSUN";
self.displayer=displayer;
Engine *engline=[Engine new];
engline.brand=@"Mac mini";
self.engline=engline;
}
return self;
}
-(void)run
{
NSLog(@"%@",[_mouse description]);
NSLog(@"%@",[_keyboard description]);
NSLog(@"%@",[_displayer description]);
NSLog(@"%@",[_engline description]);
}
@end
main 函数
#import <Foundation/Foundation.h>
#import "Computer.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Computer *computer=[[Computer alloc] init];
// Keyboard *keyboard=[[Keyboard alloc] init];
// Mouse *mouse=[[Mouse alloc] init];
// Engine *engline=[[Engine alloc] init];
// Displayer *displary=[[Displayer alloc] init];
//
// computer.mouse=mouse;
// computer.keyboard=keyboard;
// computer.engline=engline;
// computer.displayer=displary;
// mouse.brand=@"BENQ";
// keyboard.brand=@"BENQ";
// displary.brand=@"SUMSUN";
// engline.brand=@"Mac mini";
[computer run];
}
return 0;
}
运行结果

OC 复合 组装电脑的更多相关文章
- intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!
http://www.365pcbuy.com/article-411.html 特别提示:此文已经于2016年10月12日更新!内容变动较大,请细细品鉴! 如何为客户推荐高性价比机型是我站的重要工作 ...
- 建造者模式(Builder)——从组装电脑开始
建造者模式(Builder)--从组装电脑开始 建造者模式概括起来就是将不同独立的组件按照一定的条件组合起来构成一个相对业务完整的对象.调用者无需知道构造的过程. 我们从组装电脑开始 让我们从买组装电 ...
- LA3971组装电脑
题意: 你有b块钱,想要组装一台电脑,给你提供一些零件,每种零件提供一个或几个,组装电脑的前提是每种零件只能也必须选择一个,每种零件都有自己的种类,名字,价格,还有品质,要求是在能配成电脑 ...
- LA 3971 组装电脑(二分)
https://vjudge.net/problem/UVALive-3971 题意:你有b块钱,想要组装一台电脑.给出n个配件各自的种类.品质因子和价格,要求每种类型的配件各买一个,总价格不超过b, ...
- 【二分答案】 【POJ3497】 【Northwestern Europe 2007】 Assemble 组装电脑
Assemble Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3171 Accepted: 1013 Descript ...
- LA3971 组装电脑
思路:二分,就是在不超过b的预算下,使得品质的最小值最大化.关键还是判断函数吧. 假设答案为x,判断函数,就是每一个种类的配件的品质最基本的品质要大于x,然后找出最小的值.这样的配件品质之和的价格要小 ...
- OC 复合
在Objective-C中复合是通过包含作为实例变量的对象指针实现的 严格来说,只有对象间的组合才叫复合 --------------------Car.h---------------------- ...
- UVALive 3971 组装电脑
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- Uva 组装电脑 12124 - Assemble
主要运用二分法查找最优解 #include<iostream> #include<string> #include<vector> #include<map& ...
随机推荐
- php和egret的配合
egret对资源路径和js的应用都是相对路径,而在现在许多流行的框架里,一般都把js和资源放到专门的文件夹下,如public. 修改步骤: 1.修改index.html,改为全路径,如: <sc ...
- JS算法总结
1.选择排序: var arr = [3,6,7,2,6,4,1,6,8,24,12,53]; function sort(arr){ // 当数组的长度小于1的时候结束递归 if(arr.lengt ...
- ruby -- 进阶学习(十六)ckeditor去除“浏览服务器”按钮
FROM:http://blog.163.com/zjc_8886/blog/static/2408175201011222590967/ 实现方法: 由于ckeditor中的"上传图片& ...
- node.js JS对象和JSON字符串之间的转换
JSON.stringify(obj)将JS对象转为字符串. var json = { aa: ['sdddssd'], bb: [ '892394829342394792399', '23894 ...
- .NET通用开发框架
在开源中国社区,简单整理了下比较好的.NET通用开发框架.一个好的通用框架大概包括:开源.扩展性好.灵活性好.复用性好.维护性好.易测试.易发布.易部署.快速业务搭建(或业务集成).通用性强.参考资料 ...
- iOS-Block的多种使用
一.图 二.代码 1.viewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewControll ...
- 12 19 spring3 项目总结
项目截图: 林集团 https://home.cnblogs.com/u/linjituan/ 团队guihub: https:///github.com/MoiGi 李鹏飞 https://www. ...
- .Net反射机制分析和使用
1..NET反射的概述 .NET反射是审查元数据并动态收集关于它的类型信息的能力. 应用程序结构分为应用程序域—程序集—模块—类型—成员几个层次,公共语言运行库加载器管理应用程序域.这些域在拥有相同应 ...
- .net 中读取自定义Config文件
今天做一个windows插件式服务程序,插件有时要读取配置文件的设置,但是服务是动态加载到服务上的,没有办法作到动态修改服务的配置文件(app.config).在.net 2.0中有一个Configu ...
- Python基础:序列(字符串)
一.概述 字符串 类似于C中的字符数组(功能上更像C++中的string),它是由一个个 字符 组成的序列.与C/C++不同的是,Python中没有 字符 这个类型,而是用 长度为1的字符串 来表示字 ...