Object c类的设计-通讯录类

类名:Card

【Card.h】

#import<Foundation/Foundation.h>

@interface Card:NSObject

{

NSString *_contanctName; //联系人

NSString *_phoneNumber; //电话号

//初始化方法(构造方法)

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

//setter方法

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

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

//getter方法

-(NSString *)contactName;

-(NString *)phoneNumber;

//排序名片类对象的规则

-(Bool)isSortByContactName:(Card *)aCard;//按照联系人排序,默认为升序

-(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对象的可变数组

//初始化方法(构造方法)

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

//setter方法

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

//getter方法

-(NSString *)masterName;

//添加联系人名片

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

//删除联系人名片(传入名片地址)

-(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];//创建一个可变数组对象

return self;

}

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

_masterName=name;

}

-(NSString *)masterName{

return masterName;

}

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

if([_cardList containsObject:aCard]){

NSLog(@"联系人在列表中存在!")

}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:@"小华];

//创建电话本联人,联系电话

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

Card *item=[Card alloc] init];

//联系人随机生成两位数

item setContactName:[NSString stringWithFormat:@"联系人%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]

//打印结果(打印10次,随机数部份不一至)

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

contactName = 联系人11,phoneNumber = 14000000033

contactName = 联系人01,phoneNumber = 14000000003

...

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

[phoneBook sortPhoneBookContactname];

[phoneBook showPhoneBook];

//打印结果(按名字降序排列)

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

contactName = 联系人01,phoneNumber = 14000000033

contactName = 联系人11,phoneNumber = 14000000023

...

NSLog(@"----------按照电话排序后--------");

[phoneBook sortPhoneBookByPhoneNumber];

[phoneBook showPhoneBook];

//打印结果

----------按照电话排序后--------

contactName = 联系人11,phoneNumber = 14000000023

contactName = 联系人01,phoneNumber = 14000000033

//删除联系人

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

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

//打印结果:9

[phoneBook showPhoneBook]

打印结果:

contactName = 联系人11,phoneNumber = 14000000023

contactName = 联系人01,phoneNumber = 14000000033

....

//注:电话本中下标为3的元素被删除


}

return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容