//
// 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