黑马程序员——OC有参函数声明以及调用
黑马程序员——OC有参函数声明以及调用
1 //没有参数有返回值方法的声明实现及调用 2 3 //有参数有返回值方法的声明实现及调用 4 5 #import <Foundation/Foundation.h> 6 7 @interface cacu:NSObject 8 9 { 10 11 //实例变量 12 13 @public; 14 15 int _num1; 16 17 int _num2; 18 19 } 20 21 // 22 23 -(int)sum;//一个没有参数的方法 24 25 //有参方法的声明 26 27 -(int)sum:(int) x and:(int) y; 28 29 @end 30 31 @implementation cacu 32 33 -(int)sum{ 34 35 //计算_num1+_num2; 36 37 return _num1+_num2; 38 39 } 40 41 -(int)sum:(int) x and:(int) y{ 42 43 return x+y; 44 45 } 46 47 @end 48 49 int main (int argc, const char *argv[]) 50 51 { 52 53 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 54 55 56 57 //在此处输入Objective-C代码 58 59 cacu *ca=[cacu new]; 60 61 //对象访问实例变量 62 63 ca->_num1=12; 64 65 ca->_num2=30; 66 67 //调用无参方法 68 69 int s=[ca sum]; 70 71 NSLog(@"s=%d",s); 72 73 //调用有参方法 74 75 s=[ca sum:34 and:23]; 76 77 NSLog(@"s=%d",s); 78 79 [pool drain]; 80 81 return 0; 82 83 }
OC
****带参数的方法的定义和实现****
声明:
有一个参数的方法:
方法类别 (返回值类型) 方法名1:(参数类型) 参数名称;
有两个参数的方法
方法类别 (返回值类型) 方法名1:(参数类型1) 参数名称1 and:(参数类型2)参数名称2;
例:
方法的声明:
-(int)sum:(int) x and:(int) y;
方法的实现:
-(int)sum:(int) x and:(int) y{
return x+y;
}
有参方法的使用注意:
方法类型:(-)对象方法
方法的返回值:int 类型
方法的参数:x y
参数类型:int
方法名: sum: and: (冒号是方法名的一部分)
实例变量读写规范:类型名 _实例变量名
有参方法的调用:
[指针变量名 方法名: 实参 and: 实参];
****函数与对象方法的区别****
对象方法:
1、对象方法的实现只能写在@implementation...@end中,对象方法的声明只能写在@interface...@end中间
2、对象方法以“-”开头,类方法以“+”开头
3、对象方法只能由对象方法调用,类方法只能由类调用,不能当做函数一样使用
4、函数属于整个文件,可以写在文件中任何位置,包括@implementation...@end中,但写在@interface...@end会无法识别。函数声明尅一在main函数内部,也可以在main外部
5、对象方法归类\对象所有
函数:
1、所有函数都是平行的
2、函数不存在隶属关系
3、使用的时候可以直接调用
4、不可以访问对象中的变量
****常见错误:****
1、@interface...@end与@implementation...@end是不能嵌套使用的
2、不能只有类的声明没有类的实现
3、漏写@end
4、两个类的声明、实现顺序可以打乱的
5、成员变量没有写在{}中
6、方法声明写在{}中
7、在声明时不能对类的成员变量进行初始化,成员变量不能脱离对象独立存在
8、方法无法像函数一样调用
9、成员变量和方法不能使用static等关键字修饰,不要与C混淆
10、类的实现可以写在main函数之后,使用时注意声明