从零开始学习Object-C---第四天(3)

今天首先是总结之前的数据类型:

注:id数据类型是OC的一种特殊的数据类型,可用来存储任何数据类型,是多态和动态绑定的基础。

开始新的讲解--算术表达式

一段代码开始今天的学习:

 1 //
 2 //  main.m
 3 //  Demo5
 4 //
 5 //  Created by lee on 14/11/6.
 6 //  Copyright (c) 2014年 lee. All rights reserved.
 7 //
 8
 9 #import <Foundation/Foundation.h>
10
11 int main(int argc, const char * argv[]) {
12     @autoreleasepool {
13         int a = 100;
14         int b = 2;
15         int c = 25;
16         int d = 4;
17         int result;
18         result = a-b;
19         NSLog(@"a - b = %i", result);
20
21         result = b * c;
22         NSLog(@"b * c = %i", result);
23
24         result = a / c;
25         NSLog(@"a / c = %i", result);
26
27         result = a + b * c;
28         NSLog(@"a + b * c = %i", result);
29
30         result = a * b + c * d;
31         NSLog(@"a * b + c * d = %i", result);
32     }
33     return 0;
34 }
35 输出结果:
36 2014-11-06 01:16:40.458 Demo5[651:34029] a - b = 98
37 2014-11-06 01:16:40.458 Demo5[651:34029] b * c = 50
38 2014-11-06 01:16:40.458 Demo5[651:34029] a / c = 4
39 2014-11-06 01:16:40.459 Demo5[651:34029] a + b * c = 150
40 2014-11-06 01:16:40.459 Demo5[651:34029] a * b + c * d = 300
41 Program ended with exit code: 0

注:OC中算法优先级和其他语言的优先级相同,先乘除后加减,括号能改变计算顺序

运用算数表达式的规则写出计算器类,来实现基本的算术:

首先定义接口:包含 初始化(clear),get set方法,加(add)减(subtract)乘(mutiply)除(devide)方法定义

 1 //
 2 //  NSObject+Calculator.h
 3 //  Demo5
 4 //
 5 //  Created by lee on 14/11/6.
 6 //  Copyright (c) 2014年 lee. All rights reserved.
 7 //
 8
 9 #import <Foundation/Foundation.h>
10
11 @interface Calculator : NSObject
12 {
13     double accumulator;
14 }
15 //accmulator
16 -(void) setAccumulator: (double) value;
17 -(void) clear;
18 -(double) getAccumulator;
19
20 //arithetic methods
21 -(void) add: (double) value;
22 -(void) subtract: (double) value;
23 -(void) multiply: (double) value;
24 -(void) devide: (double) value;
25 @end

然后定义实现类,实现接口中定义的方法

 1 //
 2 //  NSObject+Calculator.m
 3 //  Demo5
 4 //
 5 //  Created by lee on 14/11/6.
 6 //  Copyright (c) 2014年 lee. All rights reserved.
 7 //
 8
 9 #import "NSObject+Calculator.h"
10
11 @implementation Calculator
12 -(void) setAccumulator:(double)value
13 {
14     accumulator = value;
15 }
16
17 -(void) clear
18 {
19     accumulator = 0;
20 }
21
22  -(double) getAccumulator
23 {
24     return accumulator;
25 }
26
27 -(void) add:(double)value
28 {
29     accumulator += value;
30 }
31
32 -(void) subtract:(double)value
33 {
34     accumulator -= value;
35 }
36
37 -(void) multiply:(double)value
38 {
39     accumulator *= value;
40 }
41
42 -(void) devide:(double)value
43 {
44     accumulator /= value;
45 }
46
47 @end

最后方法调用以及输出结果

 1 //
 2 //  main.m
 3 //  Demo5
 4 //
 5 //  Created by lee on 14/11/6.
 6 //  Copyright (c) 2014年 lee. All rights reserved.
 7 //
 8
 9 #import <Foundation/Foundation.h>
10 #import "NSObject+Calculator.h"
11
12 int main(int argc, const char * argv[]) {
13     @autoreleasepool {
14         Calculator *deskCalc;
15         deskCalc = [[Calculator alloc] init];
16
17         [deskCalc clear];
18         [deskCalc setAccumulator: 10];
19         NSLog(@"The result id %g", [deskCalc getAccumulator]);
20         [deskCalc add: 200];
21         NSLog(@"The result id %g", [deskCalc getAccumulator]);
22         [deskCalc devide: 15.0];
23         NSLog(@"The result id %g", [deskCalc getAccumulator]);
24         [deskCalc subtract: 10.0];
25         NSLog(@"The result id %g", [deskCalc getAccumulator]);
26         [deskCalc multiply: 5];
27         NSLog(@"The result is %g", [deskCalc getAccumulator]);
28     }
29     return 0;
30 }
31 输出结果:
32 2014-11-06 00:50:19.874 Demo5[601:25952] The result id 10
33 2014-11-06 00:50:19.875 Demo5[601:25952] The result id 210
34 2014-11-06 00:50:19.875 Demo5[601:25952] The result id 14
35 2014-11-06 00:50:19.875 Demo5[601:25952] The result id 4
36 2014-11-06 00:50:19.875 Demo5[601:25952] The result is 20
37 Program ended with exit code: 0

类和方法定义和使用参考:http://www.cnblogs.com/likun-java/p/4058448.html

时间: 2024-10-12 11:00:24

从零开始学习Object-C---第四天(3)的相关文章

从零开始学习html(十四)单位和值

一.颜色值 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>颜色值</title> 6 <style type="text/css"> 7 8 </style> 9 </head> 10 11 <body> 12 <p>当我还是三年级的学生时是一

从零开始学习R语言(四)——数据结构之“数组(Array)”

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12567789.html 4. [三维+]:数组(Array) R语言中数组可以看做是矩阵的扩展,它将矩阵扩展到2维以上.如果给定的数组是1维的则相当于向量,2维的相当于矩阵.R语言中的数组元素的类型也是单一的,可以是数值型,逻辑型,字符型或复数型等. R语言中数组的使用 4.1 数组的创建 语法:array

从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

原文:从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来!

从零开始学习jQuery (三) 管理jQuery包装集

本系列文章导航 从零开始学习jQuery (三) 管理jQuery包装集 一.摘要 在使用jQuery选择器获取到jQuery包装集后, 我们需要对其进行操作. 本章首先讲解如何动态的创建元素, 接着学习如何管理jQuery包装集, 比如添加,删除,切片等. 二.前言 本系列的2,3篇上面列举了太多的API相信大家看着眼晕. 不过这些基础还必须要讲, 基础要扎实.其实对于这些列表大家可以跳过, 等以后用到时再回头看或者查询官方的API说明. 本章内容很少, 主要讲解动态创建元素和操作jQuery

从零开始学习jQuery (六) AJAX快餐

原文:从零开始学习jQuery (六) AJAX快餐 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuery

从零开始学习jQuery(剧场版) 你必须知道的javascript

原文:从零开始学习jQuery(剧场版) 你必须知道的javascript 一.摘要 本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascript细节.  适合希望巩固javascript理论知识和基础知识的开发人员阅读.   二.前言 最近面试过一些人, 发现即使经验丰富的开发人员, 对于一些基础的理论和细节也常常会模糊. 写本文是因为就我自己而言第一次学习下面的内容时发现自己确实有所收获和感悟.  其实我们容易忽视的javascrip

从零开始学习jQuery (九) jQuery工具函数

原文:从零开始学习jQuery (九) jQuery工具函数 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQ

从零开始学ios开发(四):IOS控件(1),Image View、Text Field、Keyboard

长话短说,谢谢大家的关注,这篇写了好长时间,下面继续学习ios.我将用2到3篇的篇幅来学习iphone上的一些常用控件,包括Image View.Text Field.Keyboard.Slider等等,这篇的内容包括ImageView和Keyboard的使用.完成后的效果图如下: 1)创建一个新的project,选择“Single View Application”,命名为“Control Fun”,然后保存.一些和前几章相似的步骤在从这篇起就开始一笔待过了,也不再做截图了,例如这里的创建一个

20145320《Java程序设计》第3周学习总结(第四章)

20145320<Java程序设计>第3周学习总结(第四章) 教材学习内容总结 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制 从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象 从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction) 类是对象的设计图,对象是类的实例,生成对象要先定义类 4.1 类与对象 定义类使用c

django学习之Model(四)MakingQuery

上一篇写到MakingQuey中的filter,本篇接着来. 10)-扩展多值的关系 如果对一个ManyToManyField或ForeignKey的表进行filter过滤查询的话,有2中方法可以用.分别是: #1 Blog.objects.filter(entry__headline__contains='Lennon', entry__pub_date__year=2008) #2 Blog.objects.filter(entry__headline__contains='Lennon')