在Objective-C中定义矩形的面积和周长

时间:2013-06-17 18:02:14

标签: objective-c macos

我是Objective-C的初学者并且一直在读一本书。我现在仍然坚持每章末尾我必须做的一个练习。这就是我到目前为止所拥有的。如何定义区域和周长?我不是问区域的公式是什么(例如...长度x宽度)。我问如何在代码中实现它。我知道这很简单,但我无法弄明白。提前致谢!

#import <Foundation/Foundation.h>

// insert code here...
@interface Rectangle : NSObject 

-(void) setWidth: (int) w;
-(void) setHeight: (int) h;
-(int) width;
-(int) height;
-(int) area;
-(int) perimeter;

@end

@implementation Rectangle
{
    int width;
    int height;
    int area;
    int perimeter;
}

-(void) setWidth:(int) w {
    width = w;
}

-(void) setHeight:(int) h {
    height = h;
}

-(int) width {
    return width;
}

-(int) height {
    return height;
}

-(int) area {
    return area;
}

-(int) perimeter {
    return perimeter;
}

@end 


int main(int argc, char * argv[])
{
    @autoreleasepool {
        Rectangle *rec1 = [Rectangle new] ;
        [rec1 setWidth:10];
        [rec1 setHeight:10];
   }
   return 0; 
}

2 个答案:

答案 0 :(得分:0)

外围看起来像是在这里返回:

-(int) perimeter
{
    return perimeter;
}

我会删除perimeter实例变量并改为执行此操作:

-(int) perimeter
{
    return 2 * (width + height);
}

该地区也是如此。摆脱area实例变量并执行此操作:

-(int) area
{
    return width * height;
}

答案 1 :(得分:0)

返回宽度和高度的表达式而不是实例变量,如下所示:

- (int)area
{
    return width * height;
}

- (int)perimeter
{
    return 2 * (width + height);
}

顺便说一句,请注意代码的格式。太多的垂直空白和不一致的缩进都不好。