1

我是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; 
}
4

2 回答 2

0

周边看起来像是在这里返回:

-(int) perimeter
{
    return perimeter;
}

我会摆脱perimeter实例变量,而是这样做:

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

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

-(int) area
{
    return width * height;
}
于 2013-06-17T18:08:03.420 回答
0

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

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

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

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

于 2013-06-17T18:08:07.140 回答