代码改变世界

【转】Objective-C学习笔记11:多态和动态类型

2013-03-10 18:09 by maying_07, 146 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1820539多态是一个典型的面向对象概念。Objective-C中的多态可以使得来自不同类的对象定义同名方法。 我们来看下面的示例,分数类Fraction我们已经多次涉及到了,我们来回顾一下我们分数类的定义: 1 #import <Foundation/Foundation.h> 2 3 @interface Fraction : NSObject 4 5 @property int numerator,denominator; 6 7 -(void) print; 8 -(double) convertToNum 阅读全文

【转】Objective-C学习笔记十:继承二

2013-03-10 17:59 by maying_07, 140 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1820469 之前定义了矩形类Rectangle,那么我们如果要在桌面上生成这样一个矩形,就需要定位了。为了简便,我们定义桌面的左下角为直角坐标系(笛卡尔坐标系)的原点,横向向右为X轴正向,竖向向上为Y轴正向。那么我们只要确定了矩形的左下角坐标就可以得到矩形的位置了。此时我们就要引入坐标的概念,那么设计XYPoint类,代码如下:1 #import <Foundation/Foundation.h>2 3 @interface XYPoint : NSObject4 5 @property int x,y;6 7 阅读全文

【转】Objective-C学习笔记九:继承一

2013-03-10 17:49 by maying_07, 141 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1768779 继承是面向对象的一个核心概念。在Objective-C的继承体系中,位于最顶层的根类是NSObject,类比Java中的java.lang.Object类,我们定义的所有类都是它的子类。子类也叫扩展类或派生类。 我们之前使用的分数类Fraction就是NSObject类的派生类。继承使得子类可以从父类中获得一些属性和已有方法。要注意的是如果子类中要直接使用父类继承过来的实例变量,那么必须将变量声明在接口部分中,而在实现部分声明的变量,子类无法继承使用。在实现部分声明和synthesize的实例变量都是私有的,子类 阅读全文

【转】Objective-C学习笔记八:类的定义二

2013-03-10 17:43 by maying_07, 157 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1763111 我们继续来扩展分数类Fraction,两个分数相加,再不考虑它们是不是最简分数的情况下,有下面的公式成立:a/b+c/d=(ad+bc)/bd,那么我们在Fraction类中添加一个add方法,代码如下: 1 #import <Foundation/Foundation.h> 2 3 @interface Fraction : NSObject 4 5 @property int numerator,denominator; 6 7 -(void) print; 8 -(double) convert 阅读全文

【转】Objective-C学习笔记七:类的定义一

2013-03-10 17:37 by maying_07, 156 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1761576我们还是结合之前分数的示例来说明,只是更为详尽。使用XCode创建新的项目Fraction,然后创建Fraction类,此时XCode为我们生成两个文件:Fraction.h和Fraction.m。我们在Fraction.h这个头文件中定义分数类Fraction,在Fraction.m中编写分数类的实现代码,在main.m中编写测试程序。那么在XCode中我们得到如下的项目结构: 来看下头文件中的类定义: 1 // 2 // Fraction.h 3 // Fraction 4 // 5 // Created... 阅读全文

【转】Objective-C学习笔记六:选择结构二

2013-03-10 17:31 by maying_07, 188 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1759280之前介绍的都是独立的if选择结构,其实if语句也可以嵌套,也就是在一个if中嵌套另一个if/if-else语句,这个嵌套的if语句可以放在if块中,也可以放在else块中,那就要看具体的业务是怎么确定的。看下面这个程序示例: 1 #import <Foundation/Foundation.h> 2 3 int main(int argc, const char * argv[]) 4 { 5 @autoreleasepool{ 6 char c; 7 8 NSLog(@... 阅读全文

【转】Objective-C学习笔记五:选择结构一

2013-03-10 17:24 by maying_07, 145 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1758593 选择结构,或者称为分支结构,是编程语言中程序结构的一种,它表示进行一种判断,比如进行循环的时候判断何时终止循环。 选择结构语句包括if和switch,这和其它编程语言都是一样的,表示程序中可以有的选择分支。 首先来看下if语句。if语句包括单if语句,if-else语句和if-else if语句。单if语句只是对一个条件进行判断,符合改条件时执行某语句;if-else语句也是对某一条件进行判断,但是加入了不符合该条件的else语句部分;而if-else if语句则是对多个条件进行逐一判断的语句。if语句表示的选择 阅读全文

【转】Objective-C学习笔记四:循环结构

2013-03-10 17:17 by maying_07, 185 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1757372 和其它编程语言一样,Objective-C也提供循环结构的语法,包括for循环,while循环和do-while循环。循环的本质就是重复一定的次数来执行某语句,一般应用循化结构基本就是累加或者遍历对象以便操作。 说到循环,就不能不提数组,因为数组的操作就是伴随这循环的,那么我们来看下面的这个程序: 1 #import <Foundation/Foundation.h> 2 3 int main(int argc, const char * argv[]) 4 { 5 @autoreleasepool{ 阅读全文

【转】Objective-C学习笔记三:基本数据类型和表达式

2013-03-10 17:08 by maying_07, 150 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1756872 任何编程语言都会有数据类型,比如在Java中,数据类型可分为基本数据类型(如int,long等)和引用类型(类类型,如String等)。数据类型在所有语言中又是大同小异的。在O-C中我们已经见过int,那么还有三种最基本的数据类型,float,double和char。 int类型表示整数,float和double表示浮点数,只是double可以表示更大的范围,char表示单个字符,如果在O-C中使用字符串,可以使用NSString类型,就是之前我们见过的@""部分。 下面来看一段代码,测试基本 阅读全文

【转】Objective-C学习笔记二:面向对象概述

2013-03-10 16:47 by maying_07, 143 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://sarin.iteye.com/blog/1756859从字面来理解Objective-C就是对象化的C,那么也就是说O-C是对C的扩展,加入了对象的概念。当然C++也是有对象概念的,只是两者的编译环境有所不同。 面向对象的概念不是针对某一种编程语言而言的,它是一种程序设计思想。最基本的面向对象包括了类,对象和方法这三个概念。举日常生活中的例子,比如10路公交车,10路有几十辆车,每一辆车都是一个对象,10路并不是拥有任意一辆车,而是分配给它的特定的车。每一辆车都会有一个编号,这在公交系统中是唯一的。 那么在面向对象术语中,10路的任意一辆车都是公交车的一个实例。定义V 阅读全文