Objective-C基础之面向对象编程(OOP)——快速扩展程序

如果要添加一个绘制三角形的功能,

按过程式编程的做法:了解过程式编程

必须先修改ShapeType枚举类型,添加drawTriangle()函数,在形状列表中添加三角形并修改drawShape()函数。这其中步骤繁多,一个不小心就会出现遗漏造成错误。


但是用面向对象(OOP)的思维来解决,情况就好很多了。

接上一篇的内容

观察我们需要创建的Triangle类,碰巧与已经存在的Circle类几乎完全相同。


所以我们只需要简单的把Circle改成Triangle即可。

当然这里要忽略掉复杂的绘图代码,用简单的打印输出代替。

@interface Triangle : NSObject
{
 ShapeColor fillColor;
 ShapeRect bounds;
}

- (void) setFillColor: (ShapeColor) fillColor;
- (void) setBounds: (ShapeRect) bounds;
- (void) draw;

@end // Triangle

@implementation Triangle
- (void) setFillColor: (ShapeColor) c
{
 fillColor = c;
} // setFillColor

- (void) setBounds: (ShapeRect) b
{
 bounds = b;
} // setBounds

- (void) draw
{
 NSLog (@"drawing a triangle at (%d %d %d %d) in %@",
    bounds.x, bounds.y,
    bounds.width, bounds.height,
    colorName(fillColor));
} // draw

@end // Triangle

接下来,修改main()函数来创建三角形。

首先,将shape数组大小改为4,用来装下三角形对象:

id shapes[4];

然后,向Triangle类发送new消息,创建新三角形对象实例:

ShapeRect rect3 = { 47, 32, 80, 50 };
shapes[3] = [Triangle new];
[shapes[3] setBounds: rect3];
[shapes[3] setFillColor: kRedColor];

最后,再次调用drawShape()来输出:

drawShapes (shapes, 4);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值