黑马程序员——Object-C基础(四)方法

来源:互联网 发布:网络招生推广方案 编辑:程序博客网 时间:2024/06/05 15:03

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

 

一、     对象方法

1.         不带参数的方法

1> 设计一个返回PI的方法

// 方法声明

- (double)pi;

//方法实现

- (double)pi

{

    return 3.14;

}

2> 方法调用


2.         带一个参数的方法

1> 设计一个计算平方的方法

// 方法声明

- (double)square:(double)number;

//方法实现

- (double)square:(double)number

{

    return number * number;

}

2> 方法调用

 

3.         带多个参数的方法

1> 设计一个计算和的方法

// 方法声明

- (double)sumOfNum1:(double)num1andNum2:(double)num2;

//方法实现

- (double)sumOfNum1:(double)num1andNum2:(double)num2

{

    return num1 + num2;

}

2> 方法调用

4.         方法名注意

冒号也是方法名的一部分

同一个类中不允许两个对象方法同名

 

5.         习题

给Car类设计一个方法,用来和其他车比较车速,如果本车速度快,就返回1,如果本车速度慢,就返回-1,速度相同就返回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;}@endint 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;}

二、     类方法

1.     基本概念

直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)

2.     类方法和对象方法对比

1)       对象方法

  • 以减号-开头
  • 只能让对象调用,没有对象,这个方法根本不可能被执行
  • 对象方法能访问实例变量(成员变量)

 

2)       类方法

  • 以加号+开头
  • 只能用类名调用,对象不能调用
  • 类方法中不能访问实例变量(成员变量)
  • 使用场合:当不需要访问成员变量的时候,尽量用类方法

3)      类方法和对象方法可以同名

三、     self关键字

1.     成员变量和局部变量同名

  • 当成员变量和局部变量同名时,采取就近原则,访问的是局部变量
  • 用self访问成员变量,区分同名的局部变量

2.     使用细节

1)   出现的地方:所有的OC方法中(对象方法\类方法),不能出现在函数

2)   作用

  • 使用 "self->成员变量名"访问当前方法调用的成员变量
  • 使用 "[self 方法名];"来调用方法(对象方法\类方法)

3.     常见错误

  • 低级错误:用self去调用函数
  • 类方法中用self调用对象方法,对象方法中用self调用类方法
  • self死循环

4.     示例

  • 狗在跑之前叫两声
  • 计算器类,计算平均值的调用求和方法
0 0
原创粉丝点击