IOS开发---OC语言-⑤方法的声明和实现(无参,有1个参数,有2个参数)

来源:互联网 发布:js时间格式化 format 编辑:程序博客网 时间:2024/05/22 14:17

综合实例:

#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;

}

练习

/*
设计一个方法,用来和其他车比较车速,返回车速的差距
 */

#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;
}

匿名对象

      int main()
{
    /*
    Car *c;
    c = [Car new];
    c->speed = 250;    
    [c run];*/    
    // 不要写类似匿名对象这样的代码
    // 只要求能说出输出结果
    [Car new]->speed = 300;
    
    //下面的这句代码跟上面没有关联,它是又新建了一个新对象
    [[Car new] run];
    
    //Car *c = [Car new];
    
    return 0;
}
匿名对象会造成内存泄露,因此不建议使用
0 0
原创粉丝点击