今天首先是总结之前的数据类型:
注:id数据类型是OC的一种特殊的数据类型,可用来存储任何数据类型,是多态和动态绑定的基础。
开始新的讲解--算术表达式
一段代码开始今天的学习:
1//2//main.m3//Demo54//5//Created by lee on 14/11/6.6//Copyright (c) 2014年 lee. All rights reserved.7//89#import<Foundation/Foundation.h>1011intmain(intargc,constchar*argv[]) {12@autoreleasepool {13inta =100;14intb =2;15intc =25;16intd =4;17intresult;18result = a-b;19NSLog(@"a - b = %i", result);2021result = b *c;22NSLog(@"b * c = %i", result);2324result = a /c;25NSLog(@"a / c = %i", result);2627result = a + b *c;28NSLog(@"a + b * c = %i", result);2930result = a * b + c *d;31NSLog(@"a * b + c * d = %i", result);32}33return0;34}35输出结果:362014-11-0601:16:40.458Demo5[651:34029] a - b =98372014-11-0601:16:40.458Demo5[651:34029] b * c =50382014-11-0601:16:40.458Demo5[651:34029] a / c =4392014-11-0601:16:40.459Demo5[651:34029] a + b * c =150402014-11-0601:16:40.459Demo5[651:34029] a * b + c * d =30041PRogram ended with exit code:0
View Code
注:OC中算法优先级和其他语言的优先级相同,先乘除后加减,括号能改变计算顺序
运用算数表达式的规则写出计算器类,来实现基本的算术:
首先定义接口:包含 初始化(clear),get set方法,加(add)减(subtract)乘(mutiply)除(devide)方法定义
1//2//NSObject+Calculator.h3//Demo54//5//Created by lee on 14/11/6.6//Copyright (c) 2014年 lee. All rights reserved.7//89#import<Foundation/Foundation.h>1011@interfaceCalculator : NSObject12{13doubleaccumulator;14}15//accmulator16-(void) setAccumulator: (double) value;17-(void) clear;18-(double) getAccumulator;1920//arithetic methods21-(void) add: (double) value;22-(void) subtract: (double) value;23-(void) multiply: (double) value;24-(void) devide: (double) value;25@end
View Code
然后定义实现类,实现接口中定义的方法
1//2//NSObject+Calculator.m3//Demo54//5//Created by lee on 14/11/6.6//Copyright (c) 2014年 lee. All rights reserved.7//89#import"NSObject+Calculator.h"1011@implementationCalculator12-(void) setAccumulator:(double)value13{14accumulator =value;15}1617-(void) clear18{19accumulator =0;20}2122-(double) getAccumulator23{24returnaccumulator;25}2627-(void) add:(double)value28{29accumulator +=value;30}3132-(void) subtract:(double)value33{34accumulator -=value;35}3637-(void) multiply:(double)value38{39accumulator *=value;40}4142-(void) devide:(double)value43{44accumulator /=value;45}4647@end
View Code
最后方法调用以及输出结果
1//2//main.m3//Demo54//5//Created by lee on 14/11/6.6//Copyright (c) 2014年 lee. All rights reserved.7//89#import<Foundation/Foundation.h>10#import"NSObject+Calculator.h"1112intmain(intargc,constchar*argv[]) {13@autoreleasepool {14Calculator *deskCalc;15deskCalc =[[Calculator alloc] init];1617[deskCalc clear];18[deskCalc setAccumulator:10];19NSLog(@"The result id %g", [deskCalc getAccumulator]);20[deskCalc add:200];21NSLog(@"The result id %g", [deskCalc getAccumulator]);22[deskCalc devide:15.0];23NSLog(@"The result id %g", [deskCalc getAccumulator]);24[deskCalc subtract:10.0];25NSLog(@"The result id %g", [deskCalc getAccumulator]);26[deskCalc multiply:5];27NSLog(@"The result is %g", [deskCalc getAccumulator]);28}29return0;30}31输出结果:322014-11-0600:50:19.874Demo5[601:25952] The resultid10332014-11-0600:50:19.875Demo5[601:25952] The resultid210342014-11-0600:50:19.875Demo5[601:25952] The resultid14352014-11-0600:50:19.875Demo5[601:25952] The resultid4362014-11-0600:50:19.875Demo5[601:25952] The resultis2037Program ended with exit code:0
View Code
类和方法定义和使用参考:http://www.cnblogs.com/likun-java
/p/4058448.html