Objective-C,
Objective-C,
Objective-C - 对象作为方法的参数:以人在遛狗为例
人遛狗,人拥有一个遛狗的方法,需要在遛狗的方法中传一条狗对象给人.
在人的对象方法中狗对象做为参数传递.
#import <Foundation/Foundation.h>
#pragma mark -
#pragma mark 狗类的声明实现
//声明
@interface YYDog : NSObject
{
@public
NSString *_name;
int _age;
NSString *_color;
}
- (void)sayHi;
@end
//实现
@implementation YYDog
- (void)sayHi
{
NSLog(@"哈喽! 我是 %@ 的%@, 我今年%d岁了! ", _color, _name, _age);
}
@end
#pragma mark -
#pragma mark 人类的声明和实现
//声明
@interface YYPerson : NSObject
{
@public
NSString *_name;
int _age;
}
- (void)eatWithFood:(NSString *)foodName;
- (void)liuGouWith:(YYDog *)dog;
@end
//实现
@implementation YYPerson
- (void)eatWithFood:(NSString *)foodName
{
NSLog(@"今天的午饭%@ 真好吃啊! ", foodName);
}
- (void)liuGouWith:(YYDog *)dog
{
NSLog(@"我在遛够, 哈哈! ");
dog-> _name = @"小白";
[dog sayHi];
}
@end
int main(int argc, const char * argv[]) {
//创建人对象
YYPerson *xiaoxue = [YYPerson new];
xiaoxue->_name = @"小雪";
xiaoxue->_age = 18;
//创建狗对象
YYDog *wangcai = [YYDog new];
wangcai->_name = @"旺财";
wangcai->_age = 3;
wangcai->_color = @"黄色";
//调用对象方法
[xiaoxue eatWithFood:@"红烧鱼"];
//对象作为参数的传递,传递的是地址,所以方法内部可以修改外界的狗对象的值.
//旺财的名字在方法内部被修改成了小白
[xiaoxue liuGouWith:wangcai];
return 0;
}
相关文章
- 暂无相关文章
用户评论