pragma mark 第一個(gè)OC類方法2
pragma mark 概念
pragma mark 代碼
#import <Foundation/Foundation.h>
/*
事物名稱:iPhone
屬性: 顏色, 型號, CPU, 尺寸 == 成員變量
行為: 打電話, 發(fā)短信, 上網(wǎng), 獲取本機(jī)信息 == 成員方法
*/
typedef enum
{
kYHColorBlack, // 黑色
kYHColorWhile, // 白色
kYHColorTuHaoJin // 土豪金
}YHColor; // 自定義一個(gè)枚舉類型 別名為 YHColor
// 1.編寫類的聲明
@interface IPhone : NSObject
{
@public
float _model; // 型號
int _cpu; // CPU
double _size; // 尺寸
YHColor _color; // 顏色
}
#warning 方法聲明
-(void)about;
- (char *)loadMessage;
- (int)singnal:(int)number;
- (int)sendMessage:(int)number : (char *)content;
- (int)sendMessageWithNumber:(int)number andContent: (char *)content;
// 計(jì)算器
// 如果您不想每次使用方法 都 需要?jiǎng)?chuàng)建對象 開辟存儲空間
// 并且如果該 方法沒有使用到 屬性(成員變量), 那么你可以把這個(gè)方法定義為類方法
// 對象方法用對象調(diào)用 類方法用類調(diào)用
//- (int)sumWithVlaue1:(int)value1 andValue2:(int)value2;
// 如何定義類方法,類方法的寫法和對象方法一模一樣,除了前面的 - 號 不同以外 \
只需要將對象方法的 -號 換成 + ,那么就定義了一個(gè)類方法
+ (int)sumWithVlaue1:(int)value1 andValue2:(int)value2;
+ (void)demo;
//-(NSString *)colorWithNumber:(YHColor)number;
+(NSString *)colorWithNumber:(YHColor)number;
@end
@implementation IPhone
// 行為的實(shí)現(xiàn)
-(void)about
{
/*
NSString *name;
switch (_color) {
case 0:
name =@ "黑色";
break;
case 1:
name = @"白色";
break;
case 2:
name = @"土豪金";
break;
default:
name = @"華為";
break;
}
*/
// IPhone *p = [IPhone new];
// NSString *name = [p colorWithNumber:_color];
NSString *name = [IPhone colorWithNumber:_color];
NSLog(@"型號 = %f, cpu = %i,尺寸 = %f,顏色 = %@",_model,_cpu,_size,name);
#warning 對象方法 調(diào)用對象方法
// NSLog(@"%s",[self loadMessage]);
}
- (char *)loadMessage
{
return "hello";
}
int singnal(int number)
{
return 1;
}
- (int)singnal:(int)number
{
NSLog(@"打電話給%i",number);
return 22;
}
- (int)sendMessage:(int)number : (char *)content
{
NSLog(@"發(fā)短信 %i,內(nèi)容 = %s",number,content);
return 33;
}
#warning 類方法 對象方法
//- (int)sumWithVlaue1:(int)value1 andValue2:(int)value2
//{
// return value1 + value2;
//}
+ (int)sumWithVlaue1:(int)value1 andValue2:(int)value2
{
// 類方法中 不可以直接訪問屬性(成員變量)
// NSLog(@"打印本機(jī)信息 %f",_model,_cpu,_size,_color);
IPhone *p = [IPhone new];
[p singnal:123456789]; // 注意: 在企業(yè)開發(fā)中,不建議這樣使用
return value1 + value2;
}
+ (void)demo
{
NSLog(@"%i",[IPhone sumWithVlaue1:10 andValue2:10]);
NSLog(@"lyh");
}
#warning 工具方法 工具方法, 根據(jù)傳入的整數(shù) 返回對應(yīng)的字符串
//- (NSString *)colorWithNumber:(YHColor)number
+(NSString *)colorWithNumber:(YHColor)number;
{
NSString *name;
switch (number)
{
case 0:
name =@ "黑色";
break;
case 1:
name = @"白色";
break;
case 2:
name = @"土豪金";
break;
default:
name = @"華為";
break;
}
return name;
}
@end
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
// 1.創(chuàng)建對象
// 每次給 IPhone類發(fā)送一個(gè)new消息,都會(huì)開辟一塊新的存儲空間
// 也就意味著每次發(fā)送new消息 創(chuàng)建出來的對象 都是一個(gè)新的對象
IPhone *p = [IPhone new];
p->_color = kYHColorTuHaoJin;
p->_cpu = 1;
p->_model = 6;
p->_size = 5.5;
// 2.給對象發(fā)送消息
[p about];
return 0;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。