Objective-C 方法、属性

1
2
3
4
5
6
7
8
9
10
11
12
#import <Foundation/Foundation.h>
       
@interface Fraction: NSObject
{
    int numerator;                            //声明变量
    int denominator;                          //声明变量
}
@property int numerator, denominator;    //声明参数的属性(合成器)
-( void ) print;                           //声明打印参数方法
-( void ) setTo:( int ) n over: ( int ) d;     //声明多个参数的方法
-( double ) convertToNum;                  //声明除法运算方法
@end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@implementation Fraction
     
@synthesize numerator, denominator;        //定义参数属性(合成器)
-( void ) print                              //定义打印参数方法
{
    NSLog (@ "%i/%i" , numerator, denominator);
}
-( void ) setTo: ( int ) n over: ( int ) d       //定义多个参数的方法
{
    numerator = n;
    denominator = d;
}
-( double ) convertToNum                     //定义除法运算方法
{
    if (denominator != 0)
      return ( double ) numerator/denominator;
    else
      return 1.0;
}
@end

下面分别讲解Objective-C中的属性和带多个参数的方法。

  • 属性(存取器方法)

首先我们先说属性,在接口部分(@interface部分)中使用@property指令标识属性。这些属性通常是实例变量。在Fraction类中,两个实例变量numerator和denominator都属于此类属性。接下来我们需要在实现部分(@implementation部分)使用指令@synthesize定义即可。对于属性的访问,可以通过类的实例使用点运算符进行访问。

  • 多参数方法

参照上面例子Fraction类的setTo:over方法。首先,在接口文件中添加setTo:over:声明(详见上面例子对setTo:over方法的声明)。然后在实现部分(@implementation部分)添加新方法的定义。新的setTo:over:方法仅接收两个整型参数,n和d,并把它们赋值给该分数对应的域numerator和denominator。

创建方法名时,参数名实际上是可选的。例如,可以如下声明一个方法:

1
-( int ) set: ( int ) n: ( int ) d;

注意,和先前的例子不同,这个方法的第二个参数没有名字。这个方法名为set::,两个冒号表示这个方法有两个参数,虽然没有全部命名。

要调用set::方法,可以使用冒号作为参数分隔符,如下所示(假设实例名称为:aFraction):

1
[aFraction set: 1: 3];

在编写新方法时,省略参数名不是一种好的编程风格,因为它使程序很难读懂并且很不直观,特别是当使用的方法参数特别重要时更是如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值