//
// main.m
// 第一个OC方法-类方法
//
// Created by Caoxia on 15/11/10.
// Copyright © 2015年 Caoxia. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum color
{
KcolorBlack,
KcolorWhite,
KcolorPink,
KcolorGold
} phoneColor;
//---------------------------------------------华丽的分割线-----------------------------------------------
//---------------------------------------------华丽的分割线-----------------------------------------------
@interface iPhone : NSObject //在手机类定义三个成员变量
{
@public
float _inches;
phoneColor _myPhonecolor; //这里将结构体当做iPhone的一个属性
NSString *_name;
}
- (void)describeMyPhone;
//类方法
+ (void)classmethod;//这是没有返回值,没有参数的
@property NSString *number;
//类工厂方法也是一种特殊的类方法
+ (instancetype) iphoneWithNumber:(NSString *)number;
@end
@implementation iPhone
- (void)describeMyPhone
{
if (_myPhonecolor == KcolorBlack) {
NSLog(@"我手机的颜色是黑色的");
}else if (_myPhonecolor == KcolorWhite)
{
NSLog(@"我手机的颜色是白色的");
}else if (_myPhonecolor == KcolorGold)
{
NSLog(@"我手机的颜色是粉红色的");
}else if (_myPhonecolor == KcolorPink)
{
NSLog(@"我手机的颜色是金色的");
}else
{
NSLog(@"滚犊子");
}
NSLog(@"手机是%f英寸的,手机的名字叫%@",_inches,_name);
}
+ (instancetype) iphoneWithNumber:(NSString *)number
{
iPhone *myPhone = [[self alloc]init];
myPhone.number = number;//这里用到了点语法,就相当于 [myPhone setNumber:number];后面会有对点语法的详细解释
return myPhone;
}
+ (void)classmethod
{
NSLog(@"我就是为了说明我是一个类方法");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
[iPhone classmethod]; //调用class method方法
iPhone *phones = [iPhone iphoneWithNumber:@"15627895058"];
NSLog(@"手机的电话号码是%@",phones.number);
}
return 0;
}