Classes / Properties

@interface Square : NSObject
@property double side;
@property (nonatomicdouble area;
@end

@implementation Square
-(void) setArea: (double) area {
    self.side = sqrt(area);
}
-(double) area {
    return self.side * self.side;
}
@end

Square *square = [Square new];
square.side = 2;
//square.area is 4

square.area = 9;
//square.side is 3