3.9 练习

1.下列名称中,哪些是不合法的?为什么?

Int playNextSong 6_05

_calloc Xx alphaBetaRoutine

clearScreen_1312 z

ReInitialize_A$

2.根据本章中的汽车示例,想象一个每天都要使用的对象。为这个对象确定一个类,并编写5个用于处理该对象的操作。

3.给定练习2中的程序清单,使用以下语法:


[instance method];


中的格式重写程序清单。

4.设想你拥有一艘船、一辆摩托车和一辆汽车。列出对其中每个对象执行的操作。这些操作之间有重叠吗?

5.根据问题4,设想有一个名为Vehicle的类和一个名为myVehicle的对象,这个对象可以是Car、Motorcycle或Boat中的任何一个。如果编写以下操作:


[myVehicle prep];

[myVehicle getGas];

[myVehicle service];


向来自这几个类中的某个对象应用操作,知道这样做的好处吗?

6.在C这样的过程性语言中,思考涉及各种对象的操作,然后编写代码来执行这些操作。参见汽车例子,可用C编写洗交通工具的过程,然后在该过程中编写代码来处理清洗汽车、清洗游艇以及清洗摩托车等操作。如果采用这种方法,同时希望添加一种新的交通工具(参见以前的练习),那么能指出使用这种过程性的方法比使用面向对象的方法有什么好处和缺点吗?

7.定义一个名为XYpoint的类,用来保存笛卡儿坐标(x, y),其中x和y均为整数。定义一些方法,分别用来设置点的坐标x和y,并检索它们的值。编写一个Objective-C程序,实现这个新类并测试它。