objective-c-2.0程序设计-第3章-类、对象和方法课件

上传人:F****n 文档编号:88120380 上传时间:2019-04-19 格式:PPT 页数:48 大小:623.50KB
返回 下载 相关 举报
objective-c-2.0程序设计-第3章-类、对象和方法课件_第1页
第1页 / 共48页
objective-c-2.0程序设计-第3章-类、对象和方法课件_第2页
第2页 / 共48页
objective-c-2.0程序设计-第3章-类、对象和方法课件_第3页
第3页 / 共48页
objective-c-2.0程序设计-第3章-类、对象和方法课件_第4页
第4页 / 共48页
objective-c-2.0程序设计-第3章-类、对象和方法课件_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《objective-c-2.0程序设计-第3章-类、对象和方法课件》由会员分享,可在线阅读,更多相关《objective-c-2.0程序设计-第3章-类、对象和方法课件(48页珍藏版)》请在金锄头文库上搜索。

1、第3章 类、对象和方法,第3章 类、对象和方法,用于处理分数的 Objective-C类,3.3,第3章 类、对象和方法,实例变量的访问以及数据封装,3.7,3.1 到底什么是对象,对象就是一个事物。把面向对象的程序设计看成一个事物,而且相对这个事物做些工作。 与C语言不同,C语言通常称为过程性语言。在C语言中,通常先考虑要做什么,然后才关注对象。与面向对象的思考过程相反。 在面向对象的用语中,“你的汽车”是汽车的一个实例。如果继续使用术语,car就是类的名称,这个实例就是从该类创建的。因此,每制造一辆新汽车,就会创建汽车类的一个新实例,而且汽车的每个实例都称作一个对象。 表3-1 对象的操作

2、,第3章 类、对象和方法,用于处理分数的 Objective-C类,3.3,3.2 实例和方法,对象是类的独特表示,每个对象都包含一些通常对该对象来说是私有的信息(数据)。方法提供访问和改变这些数据的手段。 ClassOrInstance method ;,方括号后紧跟 类的名称或该 类的实例名称,一个或 多个空格,要执行的方法,分号终止,请求一个类或实例来执行某个操作时,就是在向它发送一条消息,消息的接收者称为接收者。因此有另一种方法可以表示前面所表示的一般格式。 receiver message ;,3.2 实例和方法,回顾上一个列表,使用新语法为它编写所有方法。 在此之前,你需要获得一辆

3、车。去制造厂购买一辆,如下: yourCar = Car new ; 得到一辆新车 向Car类(消息的接收者)发送一条消息,请求它卖给你一辆新车。得到的对象将被存储到变量yourCar中。 因为你到制造厂购买了一辆新汽车,所以这个新汽车叫做制造厂方法,或者类方法。对新车执行的其余操作都将是实例方法,因为它们应用于你的新车。 yourCar prep; 准备好第一次使用 yourCar drive; 驾驶汽车 yourCar wash; 洗车 yourCar getGas; 如果需要就给汽车加油 yourCar service; 维修 yourCar topDown; 是否为一辆敞篷车 your

4、Car topUp;,3.2 实例和方法,currentMileage = yourCar currentOdometer; 该方法显示的实例方法可返回信息,即当前的行驶里程,该信息存储在程序中的currentMileage变量内。 将同一个方法应用于不同的对象是面向对象程序设计背后的主要概念之一。 对象可能是面向计算机的对象,例如窗口,矩形,一段文本,或者是计算器,歌曲的播放列表。就像用于汽车的方法: myWindow erase; 清除窗口 myRect getArea; 计算矩形的面积 UserText spellCheck; 对一些文本进行拼写检查 deskCalculator cle

5、arEntry; 清除最后一次输入 favoritePlaylist showSongs; 在播放列表显示喜欢的歌曲 phoneNumber dial; 拨号,第3章 类、对象和方法,3.3 用于处理分数的 Objective-C类,假设要编写一个用于处理分数的程序。可能需要处理加减乘除等运算。如果不知道什么是类,那么可使用如下程序: 代码清单3-1 -/ Simple program to work with fractions #import int main (int argc, char *argv) autoreleasepool int numerator = 1; int den

6、ominator = 3; NSLog (”The fraction is %i/%i”, numerator, denominator); return 0; -代码清单3-1 输出: The fraction is 1/3,3.3 用于处理分数的 Objective-C类,在代码清单3-1中,分数是以分子和分母的形式表示的。创建自动释放池后,main中的前两行,将变量numerator和denominator都声明为整型,并赋予它们初值1和3.这两个程序行与下面的程序行等价: int numerator, denominator; numerator = 1; denominator =

7、3; 通过将1存储到变量numerator中,将3存储到变量denominator中可表示分数1/3。如果需要在程序中存储多个分数,这种方法可能比较麻烦。每次要引用分数时,都必须引用相应的分子和分母。 如果能把一个分数定义成单个实体,用单个名称(例如myFraction)来共同引用它的分子和分母,那么会更好。 这种方法可以使用objective-C来实现,并从定义一个新类开始。,3.3 用于处理分数的 Objective-C类,代码清单3-2使用一个名为Fraction的新类重写代码清单3-1中的函数。 代码清单3-2 -/ Program to work with fractions cla

8、ss version #import /- interface section - interface Fraction: NSObject int numerator; int denominator; -(void) print; -(void) setNumerator: (int) n; -(void) setDenominator: (int) d; end,3.3 用于处理分数的 Objective-C类,代码清单3-2(续) - /- implementation section - implementation Fraction -(void) print NSLog (”%i

9、/%i”, numerator, denominator); -(void) setNumerator: (int) n numerator = n; -(void) setDenominator: (int) d denominator = d; end,3.3 用于处理分数的 Objective-C类,代码清单3-2(续) - /- program section - int main (int argc, char *argv) autoreleasepool Fraction *myFraction; / Create an instance of a Fraction myFract

10、ion = Fraction alloc; myFraction = myFraction init; / Set fraction to 1/3 myFraction setNumerator: 1; myFraction setDenominator: 3; / Display the fraction using the print method NSLog (”The value of myFraction is:”); myFraction print; return 0; ,3.3 用于处理分数的 Objective-C类,代码清单3-2 输出 The value of myFra

11、ction is: 1/3 从代码清单3-2的注释中可以看到,程序在逻辑上分为3个部分: interface部分 implementation部分 program部分 interface部分用于描述类,类的数据成分以及类的方法; 而implementation部分包括实现这些方法的实际代码。 最后program部分包含实现程序预期目的的程序代码。,第3章 类、对象和方法,用于处理分数的 Objective-C类,3.3,3.4 interface部分,定义新类时,首先,要通知Objective-C编译器这个类来自何处。就是说,必须命名它的父类。 其次,必须确定这个类对象要存储的数据的类型。就是

12、说,必须描述类成员将包含的数据。我们把这些成员叫做实例变量。 最后,还必须定义在处理该类的对象时将要用到的各种操作或方法的类型。 这些工作都在程序中名为interface的特殊部分内完成。 该部分的一般格式类似于: interface NewClassName: ParentClassName memberDeclarations; methodDeclarations; end,3.4.1 选择名称,制定名称的规则相当简单:名称必须以字母或下划线(_)开头,之后可以是任何(大写或小写)字母、下划线或者0到9之间的数字组合。 下面是一列合法的名称: 以下名称是非法的:,sum pieceFla

13、g i myLocation numberOfMove _sysFlag ChessBoard,sum$value $是一个非法字符 piece flag 名称中间不允许插入空格 3Spencer 不能以数开头 int 保留字,3.4.1 选择名称,int不能做变量名,因为其用途对Objective-C编译器而言有特殊含义。这个是用称为保留字或保留名,一般来说,任何对Objective-C编译器有特殊意义的名称都不能作为变量名是用。 附录B“Objective-C 2.0语言总结”中,提供了这些保留名的完整列表。 应该始终记住,Objective-C中的大写字母和小写字母是有区别的。因此,变量

14、名sum、Sum和SUM都表示不用的变量。 注意,在命名类时,类名要以大写字母开始。另一方面,实例变量,对象以及方法的名称,通常以小写字母开始。为使程序具有可读性,名称中要用大写字母来表示新单词的开始: AddressBook 可能是一个类名 currentEntry 可能是一个对象 current_entry 一些程序员还是用下划线作为单词的分隔符 addNewEntry 可能是一个方法名 确定名称时,要遵循同样的标准。要找出能反映出变量或对象使用意图的名称。富有意义的名称可以显著增强程序的可读性,并在调试和归档阶段受益匪浅。,3.4.1 选择名称,一下是代码清单3-2中的interface部分 /- interface section - interface Fraction: NSObject int numerator; int denominator; -(void)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号