对象作为方法的返回值 以人买狗为例
人拥有与一个买狗的方法,这个方法执行完毕之后的到一条狗.
在人买狗的方法中创建一个狗对象,并返回.
在main函数中调用人类买狗的方法并用一个狗类的指针接收.
具体代码如下:
#import <Foundation/Foundation.h>
#pragma mark -
#pragma mark 狗类的声明和实现
//声明
@interface YYDog : NSObject
{
@public
NSString *_name;
NSString *_color;
}
- (void)shout;
@end
//实现
@implementation YYDog
- (void)shout
{
NSLog(@"哈喽! 大家好, 我是%@ 色的%@ ! ", _color, _name);
}
@end
#pragma mark -
#pragma mark 人类的声明和实现
//声明
@interface YYPerson : NSObject
{
@public
NSString *_name;
int _age;
}
- (YYDog *)buyDog;
@end
//实现
@implementation YYPerson
- (YYDog *)buyDog
{
YYDog *dog = [YYDog new];
dog->_name = @"阿黄";
dog->_color = @"黄";
return dog;
}
@end
int main(int argc, const char * argv[]) {
//创建人对象
YYPerson *person = [YYPerson new];
//调用卖狗的方法
YYDog *dog = [person buyDog];
[dog shout];
return 0;
}