正在回答 回答被采纳积分+1
不要用 void ,setage是要设置值的,用NSString*,因为是需要返回一个字符串“成年人和未成年人”也不要再这里打印。
参考
m文件
-(NSString*) setAge:(int) newAge{
if (newAge >= 18) {
age = @"成年人";
}else{
age = @"未成年人";
}
return age;
}
-(NSString*) getAge{
return age;
}
h文件
@interface Person : NSObject{
NSString *age;
}
-(NSString*) setAge:(int) newAge;
-(NSString*) getAge;
@end
main文件
@autoreleasepool {
Person *person = [[Person alloc]init];
[person setAge:18];
NSLog(@"%@",[person getAge]);
}
return 0;
这代码的问题主要集中在main方法中:
①在main方法中p1.OAge = 20;这句话不正确,首先OAge不是Person这个类中的属性,不能使用点语法进行调用和赋值。其次[p1.SetAge];这段代码是使用实例对象p1调用Person类中的方法SetAge,正确写法是[p1 SetAge];在这里就不要使用点语法了。
②将mian方法中修改一下,如下:
Person *p1 = [[Person alloc] init]; [p1 SetAge:20];
修改后可以运行。
③最后代码规范上,方法-(void)setAge:(int)age; 首字母s尽量小写
祝学习愉快~
在main方法中Person对象p1.Age = 20;执行这句话的时候,系统会执行Age的set方法。在mian方法的第8行使用中括号调用setAge:方法的时候可以不再使用点语法了。
- 参与学习 1337 人
- 提交作业 712 份
- 解答问题 1878 个
很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星