美文网首页
Object c类的设计-通讯录类

Object c类的设计-通讯录类

作者: 奔跑的小小鱼 | 来源:发表于2017-04-17 22:08 被阅读19次

类名: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;

}

相关文章

  • Object c类的设计-通讯录类

    类名:Card 【Card.h】 #import @interf...

  • Java之Object

    Object类是java类的根基类 Object类中的toString()方法: 1、SUN在object类中设计...

  • GeekBand Week 1

    Object Based vs Object Oriented 基于对象是单一类的设计; 面向对象是多重类的设计,...

  • Boolan微专业-面向对象高级编程学习笔记(Week03)

    Object Oriented Programming(OOP) 类与类的关系 Inheritance(继承) C...

  • GeekBand Week1

    Object Based vs Object Oriented 基于对象(Object Based):单一类的设计...

  • IOS面试题(一)

    Object-c的类可以多重继承么?可以实现多个接口么? Object-c的类不可以多重继承;可以实现多个接口,通...

  • Java核心基础学习(一):Object类

    常用类 Object类 Object类是所有类、数组、枚举类的父类 Object类的常用方法:

  • iOS

    一、Object-c试题总结: 1、Object-c的类可以多继承么?可以实现多个接口么? 答:Object-c的...

  • .mm文件

    .m文件是纯Object-C 文件.mm是Object-C和C++混合文件 .m只能调用纯Object-C的类,不...

  • Java基础语法_Day17

    一、Object类 & System类 Object类 概述Object类是Java语言中的根类,即所有类的父类。...

网友评论

      本文标题:Object c类的设计-通讯录类

      本文链接:https://www.haomeiwen.com/subject/ghutzttx.html