Objective-C类继承与编程实践

23、创建一个名为ClassA的类,它继承自NSObject类。再添加名为ClassB和ClassB2的两个新类,它们都是ClassA的子类。那么ClassB和ClassB2之间的关系是怎样的?请指出NSObject类、ClassA、ClassB和ClassB2之间的层级关系。ClassB的超类是什么?ClassB2的超类是什么?一个类可以有多少个子类和多少个超类?

类层级关系说明

  • ClassB ClassB2 是兄弟关系
  • 它们都是 ClassA 的子类
  • ClassA 的超类是 NSObject
  • ClassB 的超类是 ClassA
  • ClassB2 的超类也是 ClassA
  • 因此, NSObject 也是 ClassB ClassB2 的间接超类

说明:在一个类层级结构中,一个类可以有任意数量的子类,但只能有一个直接超类。

24、编写一个名为 translate: Rectangle 方法,该方法接受一个 XYPoint 对象作为参数。让它将矩形的原点按指定向量进行平移。注意:平移只是意味着将点从一个位置移动到另一个位置。

以下是实现 translate: 方法的代码示例:

#import "Rectangle.h"
#import "XYPoint.h"

@implementation Rectangle

- (void)translate:(XYPoint *)vector {
    self.origin.x += vector.x;
    self.origin.y += vector.y;
}

@end

在上述代码中, translate: 方法接受一个 XYPoint 对象 vector 作为参数,然后将矩形的原点的 x y 坐标分别加上 vector x y 坐标,从而实现矩形原点的平移。

25、定义的id类型变量dataValue,能否被赋值为Rectangle对象?也就是说,语句dataValue = [[Rectangle alloc] init]; 是否有效?为什么?

该语句有效。因为 dataValue 被声明为 id 对象类型, id 类型可以用来持有程序中任何类型的对象,所以可以将 Rectangle 对象赋值给 dataValue

26、在Fraction类的add:方法中添加一个计数器,以统计该方法被调用的次数。如何获取计数器的值?

可在 Fraction 类中定义一个静态变量作为计数器,在 add: 方法中每次调用时让计数器加1。要获取计数器的值,可在类中添加一个类方法来返回该计数器的值。示例代码如下:

#import <Foundation/Foundation.h>

@interface Fraction : NSObject

@property int numerator, denominator;

- (void) print;
- (void) setTo: (int) n over: (int) d;
- (double) convertToNum;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值