//
// main.m
// ATM
// #import <Foundation/Foundation.h>
#import "ATM.h"
#import "Money.h"
#import "BankCard.h" int main(int argc, const char * argv[])
{
ATM * atm = [[ATM alloc]init];
//atm->_saveMoneyCount = 1000;
BankCard * card = [BankCard alloc];
// [card set_cardNumber:@"12345678"];
// [card set_userName:@"张三"]; [atm tellMoney:TypeOfMoneyFake]; [card showCardNumber:@"12345678"];
[card showUserName:@"李四"];
NSLog(@"%@",card);
[atm saveMoney:10000];
NSLog(@"%@",atm);
[atm getMoney:5000];
NSLog(@"%@",atm); return 0;
}
#import <Foundation/Foundation.h>
#import "BankCard.h"
#import "Money.h" @interface ATM : NSObject
{
//用来记录钱的总数
int _countOfMoney; //存钱数目
int _saveMoneyCount; //取钱数目
int _getMoneyCount;
}
@property int _countOfMoney;
@property int _saveMoneyCount;
@property int _getMoneyCount; -(void)saveMoney:(int)saveMoney; -(void)getMoney:(int)getMoney; -(void)tellMoney:(TypeOfMoney)typeOfMoney;
@end
#import "ATM.h" @implementation ATM
@synthesize _countOfMoney = countOfMoney;
@synthesize _saveMoneyCount = saveMoneyCount;
@synthesize _getMoneyCount = getMoneyCount; -(void)saveMoney:(int)saveMoney
{
//这里參数名称的命名最好不好和实例变量的名称同样
//假设这样做会发生将实例变量隐藏 不影响执行,可是会有警告
_saveMoneyCount = saveMoney;
_countOfMoney = _saveMoneyCount;
NSLog(@"%d",_saveMoneyCount);
} -(void)getMoney:(int)getMoney
{
_getMoneyCount = getMoney;
_saveMoneyCount -= getMoneyCount; NSLog(@"%d",_getMoneyCount);
} -(void)tellMoney:(TypeOfMoney)typeOfMoney
{
switch (typeOfMoney) {
case TypeOfMoneyReal:
NSLog(@"真币");
break;
case TypeOfMoneyFake:
NSLog(@"假币");
break;
default:
break;
}
} -(NSString *)description
{
return [NSString stringWithFormat:@"银行卡结余=%d 存入钱数=%d 取出钱数=%d ",_countOfMoney,_saveMoneyCount,_getMoneyCount];
}
@end
#import <Foundation/Foundation.h>
enum TypeOfMoney
{
TypeOfMoneyReal,//真币 TypeOfMoneyFake//假币
}; typedef enum TypeOfMoney TypeOfMoney; @interface Money : NSObject @end
#import "Money.h"
@implementation Money
{ } @end
#import <Foundation/Foundation.h> @interface BankCard : NSObject
{
/**用来存储银行卡账号*/
NSString * _cardNumber; /**用来存储银行卡使用者姓名*/
NSString * _userName; }
-(void)showCardNumber:(NSString *)number;
-(void)showUserName:(NSString *)name;
@property NSString * _cardNumber;
@property NSString * _userName;
@end
#import "BankCard.h" @implementation BankCard @synthesize _cardNumber = carNumber;
@synthesize _userName = userName;
-(void)showCardNumber:(NSString *)number
{
//这里忘记了传參数!!!
_cardNumber = number;
NSLog(@"%@",_cardNumber);
}
-(void)showUserName:(NSString *)name
{
_userName = name;
NSLog(@"%@",_userName);
}
-(NSString *)description
{
return [NSString stringWithFormat:@"账号:%@ username:%@",_cardNumber,_userName];
}
@end