OC基础第一天

main.m

#import <Foundation/Foundation.h>




// Step 1. 定义类

// 数据抽象: 找到和类(对象)相关的属性(找名词)

// 行为抽象: 找到和类(对象)相关的方法(找动词)


// 类的声明部分

@interface Circle : NSObject {

    // 数据抽象

    @private double _radius;

}


// 初始化方法

- (instancetype) initWithRadius:(double) radius;


// 行为抽象


- (double) perimeter;


- (double) area;


@end


// 类的实现部分

@implementation Circle


- (instancetype) initWithRadius:(double) radius {

    if (self = [super init]) {

        _radius = radius;

    }

    return self;

}


- (double) perimeter {

    return 2 * M_PI * _radius;

}


- (double) area {

    return M_PI * _radius * _radius;

}


@end


static const double WALL = 5.5;

static const double AISLE = 7.8;


int main() {

    // 自动释放池(离开释放池申请的内存会做一次释放操作)

    @autoreleasepool {

        printf("请输入游泳池的半径: ");

        double r;

        scanf("%lf", &r);

        // Step.2 创建对象

        // 用中缀符语法给对象发消息

        Circle *smallCircle = [[Circle alloc] initWithRadius:r];

        Circle *bigCircle = [[Circle alloc] initWithRadius:r + 3];

        // Step.3 给对象发消息求解问题

        printf("The price of aisle is $%.2f\n",

               ([bigCircle area] - [smallCircle area]) * AISLE);

        printf("The price of wall is $%.2f\n", [bigCircle perimeter] * WALL);

    }

    return 0;

}


你可能感兴趣的:(OC基础第一天)