Object c類的設計-通訊錄類

類名:Card

【Card.h】

#import<Foundation/Foundation.h>

@interface Card:NSObject

{

NSString *_contanctName; //聯(lián)系人

NSString *_phoneNumber; //電話號

//初始化方法(構(gòu)造方法)

-(id)initWithContactName:(Nssting *)name andPhoneNumber:(Nsstring *)number;

//setter方法

-(void)setContactName:(NSString *)name;

-(void)setPhoneNumber:(NSString *)number;

//getter方法

-(NSString *)contactName;

-(NString *)phoneNumber;

//排序名片類對象的規(guī)則

-(Bool)isSortByContactName:(Card *)aCard;//按照聯(lián)系人排序,默認為升序

-(BooL)isSortByphoneNumber:(card *)aCard;//按照電話號排序,默認為升序

//打印Card類對象方法

-(void)printCard;

@end


【Card.m】

#import"Card.h"

@implementation Card

-(id)initWithCintactName:(NSString *)name andPphondNumber:(NSString *)number{

self=[super init];

if(self){

_contactName=name;

_phoneNumber=number;

}

return self;

}

-(void)setContactName:(NSString *)name{

_contactName=name;

}

-(void)setPhoneNumber:(NSString *)number{

_phoneNumber=number;

}

-(NSString *)contactName{

return _contactName;

}

-(NString *)phoneNumber{

return_phoneNumber;

}

-(Bool)isSortByContactName:(Card *)aCard{

if([self contactName] compare:[aCard contactName]]==NSOrderedDescending){

return YES;

}

return No;

}

-(BooL)isSortByphoneNumber:(card *)aCard{

if(self phoneNumber] conpare:[aCard phoneNumber]]==NSOrderedDescending)){

return YES;

}

return NO;

}

-(void)printCard{

{

NSLog(@"contactName=%@,phoneNumber=%@",[self contactName],[self phoneNumber])

}

@end


phone Book電話本類

#import<Foundation/Foundation.h>

[PhoneBook.h]

@interface PhoneBook: NSobjects{

NSString *_masterName; //主機人名

NSMutableArray *_cardList;//存儲Card對象的可變數(shù)組

//初始化方法(構(gòu)造方法)

-(id)initWithMasterName:(NSString *)name;

//setter方法

-(void)setMasterName:(NSString *)name;

//getter方法

-(NSString *)masterName;

//添加聯(lián)系人名片

-(void)addContactCard:(Card *)card;

//刪除聯(lián)系人名片(傳入名片地址)

-(void)removeCard:(Card *)card;/

//遍歷電話本

-(void)showPhoneBook;

//排序

-(void)sortedByContactName;

-(void)sortedByPhoneNumber;

//測試當前類(類方法)

+(void)testPhoneBook;

}

@end


[PhoneBook.m]

#import"PhoneBook.h"

@implementtation PhoneBook

-(id)initWithMasterName:(NSString *)name{

self=[super init];

if(self){

_masterName=name;

_cardList=[NSMubableArray array];//創(chuàng)建一個可變數(shù)組對象

return self;

}

-(void)setMasterName:(NSString *)name{

_masterName=name;

}

-(NSString *)masterName{

return masterName;

}

-(void)addContactCard:(Card *)card{

if([_cardList containsObject:aCard]){

NSLog(@"聯(lián)系人在列表中存在!")

}else{

[_cardList addObject:aCard];

}

-(void)removeCard:(Card *)card{

[_cardList removeObject:aCard;

-(void)showPhoneBook{

for(Card *item in _cardList){

[item printCard];

}

}

-(void)sortedByContactName{

_cardList sortUsingSelector:@selector( isSortByContactName:)];

}

-(void)sortedByPhoneNumber{

_cardList sortUsingSelector:@selector( isSortByPponeNumber::)];

}

+(void)testPhoneBook

{

phoneBook *phoneBook=[phoneBook alloc]initWithMasterName:@"小華];

//創(chuàng)建電話本聯(lián)人,聯(lián)系電話

for(NSInteger i=0;i<10;i++){

Card *item=[Card alloc] init];

//聯(lián)系人隨機生成兩位數(shù)

item setContactName:[NSString stringWithFormat:@"聯(lián)系人%2li",arc4andom()%100+1]];

//電話號后四位隨機生成

item setPhoneNumber:[String StringWithFormat:@"140000%04i',arc4randome()%10000]];

[phoneBook addContactCard:item];

}

//遍歷電話本

[phoneBook shwoPhoneBook];

}


【main.h】

#import <Foundation/Foundation.h>

#import<int argc,const char * arg[]){

@autoeleasepool{

NSLog(@"----------排序前--------");

[phoneBook testPhoneBook]

//打印結(jié)果(打印10次,隨機數(shù)部份不一至)

----------排序前--------

contactName = 聯(lián)系人11,phoneNumber = 14000000033

contactName = 聯(lián)系人01,phoneNumber = 14000000003

...

NSLog(@"----------按昭名字排序后--------");

[phoneBook sortPhoneBookContactname];

[phoneBook showPhoneBook];

//打印結(jié)果(按名字降序排列)

----------按昭名字排序后--------

contactName = 聯(lián)系人01,phoneNumber = 14000000033

contactName = 聯(lián)系人11,phoneNumber = 14000000023

...

NSLog(@"----------按照電話排序后--------");

[phoneBook sortPhoneBookByPhoneNumber];

[phoneBook showPhoneBook];

//打印結(jié)果

----------按照電話排序后--------

contactName = 聯(lián)系人11,phoneNumber = 14000000023

contactName = 聯(lián)系人01,phoneNumber = 14000000033

//刪除聯(lián)系人

[phoneBook removeContactCard:[phoneBook->CardList[3]];

NSLog(@"count =%li",[phoneBook->_cardList count]);

//打印結(jié)果:9

[phoneBook showPhoneBook]

打印結(jié)果:

contactName = 聯(lián)系人11,phoneNumber = 14000000023

contactName = 聯(lián)系人01,phoneNumber = 14000000033

....

//注:電話本中下標為3的元素被刪除


}

return 0;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容