什麼叫類和對象
01.
類:是具有相同特徵和共同行爲的集合
對象:就是累的具體實體
方法 就是累具有什麼行爲 能幹什麼
eg:
類名:Teacher 類
屬性:姓名年齡工資性別所教的課程 對象
行爲:上課批作業叫家長 方法
殭屍
類名:Zoombie 類
屬性:血量速度攻擊力防禦力 對象
行爲:咬跳 方法
02.類是分爲2部分的一個是聲明一個是實現
所謂聲明就是在@interface中進行說明有哪些對象,以及方法
格式
@interface 類名 : 父類名(NSObject)
{
//定義實例變量
}
//定義類的行爲聲明
@end
類的實現的格式:
@implementation 類名
類行爲的具體實現
@end
03。怎麼樣在main函數中訪問對象呢?
1.要在聲明中確定對象要是公共的在開頭寫一個@publice在任何地方都能訪問
但要訪問首先要創建對象創建對象的格式
類名 *隨便定義一個對象=[類名 new];
或者
類名 *隨便定義一個變量=[[類名 alloc ] init ];
這裏new做了三件事
1.申請內存空間
2.初始化類中的實例變量
3.返回對象內存地址
2.給對象賦值
對象名->_實例變量;
對象名->_實例變量;
對象名->_實例變量;
打印當然是用
NSLog(@“ ” 對象名->_實例變量,對象名->_實例變量; );
4.那麼聲明中的方法呢
01.聲明方法的格式
-(返回值類型)方法名{
}
eg:
-(int )sum;
02.實現的方法格式
就是把聲明的格式拷過來然後把分號去掉加{
裏面寫他的具體實現的步驟
}
eg:
-(int)sum{
num1+num2=sum
return 0;
};
聲明多個呢?
格式:
- (返回值類型)方法名1:(參數類型)參數名1 and方法名2:(參數類型)參數名;
在mian函數中怎麼調用呢?
調用格式:
[對象名 方法名 ];
綜合所有 看
/*
類名:蘋果手機(IPhone)
屬性:
顏色(_color ), 大小(_size), _cpu
行爲:
查看本機信息(aboutMyPhone),
打電話(callPhone),
發短信 (sendMessage)
實現該類,並:
1)查看本機信息
2)打電話給10086
3)給10086發短信問聯通的客服電話是多少
*/
#import <Foundation/Foundation.h>
typedef enum{
// 0 1 2
kColorWhite, kColorGold, kColorBlack
}Color;
//類的聲明
@interface IPhone : NSObject
{
@public
//定義實例變量
Color _color;//顏色
float _size; //大小
NSString *_cpu;//cpu
}
//方法的聲明
//查看本機信息
- (void)aboutMyPhone;
//打電話
- (void)callPhone:(NSString *)telNum;
//發短信
- (void)sendMessage:(NSString *)telNum andContent:(NSString *)content;
@end
//類的實現
@implementation IPhone
//方法的實現
//查看本機信息
- (void)aboutMyPhone{
NSLog(@"顏色:%d,大小:%.2f, cpu:%@", _color, _size, _cpu);
}
//打電話
- (void)callPhone:(NSString *)telNum{
NSLog(@"給%@打電話", telNum);
}
//發短信
- (void)sendMessage:(NSString *)telNum andContent:(NSString *)content{
NSLog(@"給%@發短信,短信內容:%@", telNum, content);
}
@end
int main(int argc,const char * argv[]) {
@autoreleasepool {
//創建對象
IPhone *ip = [IPhone new];
//給實例變量賦值
ip->_color = kColorGold;
ip->_size =7.5f;
ip->_cpu =@"A10";
//調用方法
[ip aboutMyPhone];
[ip callPhone:@"10086"];
[ip sendMessage:@"10086" andContent:@"你好,聯通客服電話是多少?"];
}
return 0;
}