1.對象存儲的細節 new
03. 一個類可以創建多個對象,每個對象地址都不同
2.#pragma mark的使用
1、就是聲明多個多個類時或者是在.M文件中中間寫上pragma mark就會清楚的在x扣得上面能清楚的看到區分出來
3對象和方法之間的關數連續傳遞
1、對象作爲方法的參數
案例:比如人用搶
定義完聲明和實現以後
eg:
顯示人信息
- (void)showPerson:(Person *)person;
就是在實現中打印出來
在main函數直接直接用就好了
2、對象作爲方法的返回值
- (Person *)changeSex:(Person *)person;
在.M中直接 給對象在從新賦值 參數名->_變量=賦值
顧名思義 就是在返回值中寫 return person4對象作爲方法的參
人要調用搶
所以在main文件中把槍傳給人用,
[人的指針 槍的方法名 :槍的指針]
#import <Foundation/Foundation.h>
//槍類的聲明
@interface Gun : NSObject
{
@public
//定義實例變量
NSString *_size;//型號
int _bulletCount;//子彈數
}
//射擊方法的聲明
- (void)shoot;
@end
//槍類的實現
@implementation Gun
//射擊方法的實現
- (void)shoot{
if(_bulletCount > 0){
_bulletCount--;
NSLog(@" %@ 正在突突突的射擊, 剩餘子彈:%d", _size, _bulletCount);
}else
{
_bulletCount = 0;
NSLog(@"沒有子彈了,還突突個毛線, 剩餘子彈數:%d", _bulletCount);
}
@end
//士兵類的聲明
@interface Soldier : NSObject
{
@public
//姓名(_name)生命(_life) 等級(_level)
NSString *_name;//姓名
int _life;//生命
int _level;//等級
}
//開槍方法的聲明
- (void)fireByGun:(Gun *)gun;
@end
//士兵類的實現
@implementation Soldier
//開槍方法的實現
- (void)fireByGun:(Gun *)gun{
//開槍射擊
[gun shoot];
}
@end
int main(int argc,constchar * argv[]) {
@autoreleasepool {
//創建槍對象
Gun *g = [Gun new];
//給實例變量賦值
g->_size =@"AK-47";
g->_bulletCount =5;
//創建士兵對象
Soldier *s = [Soldier new];
//給實例變量賦值
s->_name =@"藍博";
s->_life =200;
s->_level =3;
//調用方法
[s fireByGun:g];
[s fireByGun:g];
[s fireByGun:g];
[s fireByGun:g];
[s fireByGun:g];
[s fireByGun:g];
}
return0;
}
5,NSString
1,計算英文字符串長度時
一個字符串就是一個字節
nsstriing *s1=@“fdg”;
int a=[s1 length];
NSlong(@"%d" a );
2,中文
NSString *s2 = @"學挖掘機哪家強"; //7漢字
int b = [s2 length]
NSLog(@"%d", b); //7字節
3,中英混合輸入NSString *s4 = @"學挖掘機哪家強ObjectC";//14
int d = [s4 length];
NSLog(@"%d", d);
6多文件管理1,就是在.h文件中寫一個聲明,
2,在.m文件中寫一個實現,
3、然後把頭文件引入main函數中,在main函數中調用