#import <Foundation/Foundation.h>
/*
事物名称: iPhone
属性: 颜色, 型号, cpu, 尺寸 == 成员变量
行为:打电话, 发短信, 上网, 获取本机信息 == 成员方法
*/
typedef enum
{
kIColorBlack, // 黑色
kIColorWhite, // 白色
kIColorTuHaoJin // 土豪金
} IColor;
// 1.编写类的声明
@interface Iphone : NSObject
{
@public
float _model; // 型号 0
int _cpu; // cup 0
double _size; // 尺寸 0
// int _color; // 颜色 0代表黑色 1代表白色 2土豪金
// enum IColor _color;
IColor _color;
}
- (void)about;
- (char *)loadMessage;
- (int)signal:(int)number;
- (int)sendMessageWithNumber:(int)number andContent:(char *)content;
+ (int)sumWithValue1:(int)value1 andValue2:(int)value2;
//- (NSString *)colorWithNumber:(IColor)number;
+ (NSString *)colorWithNumber:(IColor)number;
@end
// 2.编写类的实现
@implementation Iphone
// 行为的实现
- (void)about
{
/*
// char *name;
NSString *name;
switch (_color) {
case 0:
name = @"黑色";
break;
case 1:
name = @"白色";
break;
case 2:
name = @"土豪金";
break;
default:
name = @"华强北";
break;
}
// NSLog(@"型号 = %f, cpu = %i, 尺寸= %f, 颜色 = %i", _model, _cpu, _size, _color);
*/
// Iphone *p = [Iphone new];
// NSString *name = [p colorWithNumber:_color];
NSString *name = [Iphone colorWithNumber:_color];
NSLog(@"型号 = %f, cpu = %i, 尺寸= %f, 颜色 = %@", _model, _cpu, _size, name);
}
// 工具方法, 根据传入的整数返回对应的字符串
//- (NSString *)colorWithNumber:(IColor)number
+ (NSString *)colorWithNumber:(IColor)number;
{
NSString *name;
switch (number) {
case 0:
name = @"黑色";
break;
case 1:
name = @"白色";
break;
case 2:
name = @"土豪金";
break;
default:
name = @"华强北";
break;
}
return name;
}
- (char *)loadMessage
{
return "wife is god";
}
- (int)signal:(int)number
{
NSLog(@"打电话给%i", number);
return 1;
}
- (int)sendMessageWithNumber:(int)number andContent:(char *)content
{
NSLog(@"发短信给%i, 内容是%s", number, content);
return 1;
}
+ (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
return value1 + value2;
}
@end
int main(int argc, const char * argv[]) {
// 1.创建对象
// 每次给Iphone类发送一个new消息都会开辟一块新的存储空间
// 也就意味着每次发送new消息创建出来的对象都是一个新的对象
Iphone *p = [Iphone new];
p->_color = kIColorWhite;
p->_cpu = 1;
p->_model = 4;
p->_size = 3.5;
// 2.给对象发送消息
[p about];
return 0;
}
03-06、OC类中的类方法:类方法的使用场景
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 注意一点:Foundation框架的类, 但凡是通过类工厂方法创建的对象都是加上autorelease了 Pers...
- 1、类中什么时候可以定义类方法: 如果你不想每次使用方法都需要创建对象开辟存储空间 并且如果该方法中没有使用到属性...
- 古龙说,有人的地方就有江湖。这句话在职场上,同样适用。 你身边有没有遇到过这种情况?有些同事本职工作干得很好,但就...