main.m
//
// main.m
// Circle
//
// Created by macsir on 12-10-25.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import<Foundation/Foundation.h>
#import"Circle.h"
#import"Rectangle.h"
#import"PblateSphereiod.h"
#import"Triangle.h"
NSString *colorName (ShapeColor colorName);
void drawShapes (id shapes[],int count);
void drawTriangle(ShapeRect bounds,ShapeColor fillColor);
void drawEgg(ShapeRect bounds,ShapeColor fillColor) ;
void drawRectangle(ShapeRect bounds,ShapeColor fillColor) ;
void drawCircle(ShapeRect bounds,ShapeColor fillColor) ;
int main (int argc,constchar * argv[])
{
// @autoreleasepool {
//
// // insert code here...
// NSLog(@"Hello, World!");
//
// }
// Circle circle;
// circle.draw();
id shapes[4];
ShapeRect rect0 = {0, 0, 10, 30};
shapes[0] = [Circlenew];
[shapes[0]setBounds:rect0];
[shapes[0]setFillColor:kRedColor];
ShapeRect rect1 = {30, 40, 50, 60};
shapes[1] = [Rectanglenew];
[shapes[1]setBounds:rect1];
[shapes[1]setFillColor:kGreenColor];
ShapeRect rect2 = {0, 0, 10, 30};
shapes[2] = [PblateSphereiodnew];
[shapes[2]setBounds:rect2];
[shapes[2]setFillColor:kBlueColor];
ShapeRect rect3 = {47, 32, 80, 50};
shapes[3] = [Trianglenew];
[shapes[3]setBounds:rect3];
[shapes[3]setFillColor:kRedColor];
drawShapes(shapes, 4);
return 0;
}
void drawShapes (id shapes[],int count)
{
int i;
for(i = 0; i<count; i++) {
[shapes[i] draw];
}
}//drawShapes
//
// Circle.h
// Circle
//
// Created by macsir on 12-10-25.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import<Foundation/Foundation.h>
#import"PublicData.h"
@interface Circle :NSObject
{
ShapeColor fillColor;
ShapeRect bounds;
}
- (NSString*) getColorName: (ShapeColor) colorName;
- (void) setFillColor: (ShapeColor) fillColor;
- (void) setBounds: (ShapeRect) bounds;
- (void) draw;
@end//Circle
//
// Circle.m
// Circle
//
// Created by macsir on 12-10-25.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import"Circle.h"
@implementation Circle//用于定义类的公共接口
- (NSString *) getColorName: (ShapeColor)c
{
switch (c) {
case kRedColor:
return @"Red";
break;
casekGreenColor:
return @"Green";
break;
case kBlueColor:
return @"Blue";
break;
default:
break;
}
return@"no clue";
}//myColorName
- (void) setFillColor: (ShapeColor) c
{
fillColor = c;
}//setFillColor
- (void) setBounds: (ShapeRect) b
{
bounds = b;
}//setBounds
- (void) draw
{
NSLog(@"Drawing a circle at (%d %d %d %d) in %@",bounds.x ,bounds.y,bounds.width,bounds.height, [selfgetColorName:fillColor]);
}
@end
//
// Rectangle.h
// Circle
//
// Created by macsir on 12-10-25.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import<Foundation/Foundation.h>
#import"PublicData.h"
#include"Circle.h"
@interface Rectangle :Circle
@end
//
// Rectangle.m
// Circle
//
// Created by macsir on 12-10-25.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import"Rectangle.h"
@implementation Rectangle
@end
#include "Circle.h"
@interface Rectangle :Circle
NSLog(@"Drawing a circle at (%d %d %d %d) in %@", bounds.x , bounds.y, bounds.width, bounds.height, [selfgetColorName:fillColor]);
#import"Circle.h"
id shapes[4];
ShapeRect rect0 = {0, 0, 10, 30};
shapes[0] = [Circlenew];
[shapes[0]setBounds:rect0];
[shapes[0]setFillColor:kRedColor];
2012-10-25 20:53:42.067 Circle[1307:707] Drawing a circle at (0 0 10 30) in Red
2012-10-25 20:53:42.071 Circle[1307:707] Drawing a circle at (30 40 50 60) in Green
2012-10-25 20:53:42.073 Circle[1307:707] Drawing a circle at (0 0 10 30) in Blue
2012-10-25 20:53:42.075 Circle[1307:707] Drawing a circle at (47 32 80 50) in Red