------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、方法的声明和实现
1、不带参数的方法
举例:设计一个返回PI的方法
//方法声明
- (double)pi;
//方法实现
- (double)pi
{
return3.14;
}
方法调用
2、带一个参数的方法
举例:设计一个计算平方的方法
//方法声明
- (double)square:(double)number;
//方法实现
- (double)square:(double)number
{
return number * number;
}
方法调用
3、带多个参数的方法
举例:设计一个计算和的方法
//方法声明
- (double)sumOfNum1:(double)num1andNum2:(double)num2;
//方法实现
- (double)sumOfNum1:(double)num1andNum2:(double)num2
{
return num1 + num2;
}
方法调用
4、程序代码和结果
<span style="font-size:18px;">#import <Foundation/Foundation.h>
/*
计算器类
方法:
1> 返回 π
2> 计算某个整数的平方
3> 计算两个整数的和
*/
@interface JiSuanQi : NSObject
// 方法名:pi
- (double)pi;
// OC方法中,一个参数对应一个冒号
// 方法名:pingFang:(冒号也是方法名的一部分)
- (int)pingFang:(int)num;
//- (int)sum:(int)num1 :(int)num2;
// 方法名:sumWithNum1:andNum2:
- (int)sumWithNum1:(int)num1 andNum2:(int)Num2;
//- (int)sumWithNum1:(int)num1 andNum2:(int)num2 andNum3:(int)num3;
@end
@implementation JiSuanQi
- (double)pi
{
return 3.14;
}
- (int)pingFang:(int)num
{
return num * num;
}
//- (int)sum:(int)num1 :(int)num2
-(int)sumWithNum1:(int)num1 andNum2:(int)num2
{
return num1 + num2;
}
@end
int main()
{
JiSuanQi *jsq = [JiSuanQi new];
int a = [jsq sumWithNum1:20 andNum2:5];
//int a = [jsq sum:10 :5];
//int a = [jsq pingFang:10];
//double a = [jsq pi];
NSLog(@"%i", a);
return 0;
}</span>
5、总结
冒号也是方法名的一部分
同一个类中不允许两个对象方法同名
二、方法的声明和实现实例分析
1、程序代码和结果
<span style="font-size:18px;">/****************************
设计一个方法,用来和其他车比较车速,返回车速的差距
****************************/
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public
int speed;
}
- (int)compareSpeedWithOther:(Car *)other;
@end
@implementation Car
- (int)compareSpeedWithOther:(Car *)other
{
// speed
// other->speed
// 返回当前这辆车和other这辆车的速度差距
return speed - other->speed;
}
@end
int main()
{
Car *c1 = [Car new];
c1->speed = 300;
Car *c2 = [Car new];
c2->speed = 250;
int a = [c1 compareSpeedWithOther:c2];
NSLog(@"a=%d", a);
return 0;
}</span>
2、总结
类、对象、类的成员变量的命名一定要规范且详细。
OC对象中一个参数对一个冒号。
三、匿名访问
1、实例分析
属性访问:
[Car new]->speed = 200;
方法调用:
[ [Car new] run];
NSLog(@”这辆车的速度为%dkm/h”,speed);输出结果:这辆车的速度为0km/h。注意这里不是200km/h。
2、总结
一旦使用[对象名称new];这个方法,就会创建一个新的对象,会分配新内存。
禁止写这类代码,会造成内存泄漏。只要求看懂。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------