Objective-C學習筆記—類別(實現多重繼承的方法)

來源:互聯網
上載者:User

✓ 類別是一個類,它是添加了新功能的現有類。
✓ 使用類別就是為了能夠為現有類添加新的方法,不用繼承該現有類,就可使用現有類的對象調用添加的方法了。
✓ 類別可以使類的實現分散在多個檔案中.
✓ 類別中不能有變數,類別中沒有放變數的位置.
✓ 如果類中的方法和類別中的方法名稱相同,這將造成衝突,類別的方法將完全取代類的方法。
✓ 同一個類的不同類別聲明了相同的方法,這將導致不穩定,哪個方法會被調用是不確定的.

類別聲明:
#import "ClassName.h"
@interface ClassName ( CategoryName )
方法聲明
@end

類別實現:
#import "ClassName+CategoryName.h” //聲明檔案
@implementation ClassName ( CategoryName )
方法實現
@end

執行個體:

FractionMath.h
#import "Fraction.h"
@interface Fraction (Math)
-(Fraction*) add: (Fraction*) f;
-(Fraction*) mul: (Fraction*) f;
-(Fraction*) div: (Fraction*) f;
-(Fraction*) sub: (Fraction*) f;
@end
FractionMath.m
#import "FractionMath.h"
@implementation Fraction (Math)
-(Fraction*) add: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f denominator] +denominator *
               [f numerator] denominator: denominator * [f denominator]];
}
-(Fraction*) mul: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f numerator]
             denominator: denominator * [f denominator]];
}
-(Fraction*) div: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f denominator]
          denominator: denominator * [f numerator]];
}
-(Fraction*) sub: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f denominator] -denominator * [f numerator]
                denominator: denominator * [f denominator]];
}
@end
main.m
#import <stdio.h>
#import "Fraction.h"
#import "FractionMath.h"
int main( int argc, const char *argv[] ) {
// create a new instance
Fraction *frac1 = [[Fraction alloc] initWithNumerator: 1 denominator: 3];
Fraction *frac2 = [[Fraction alloc] initWithNumerator: 2 denominator: 5];
Fraction *frac3 = [frac1 mul: frac2];

[frac1 print];
printf( " * " );
[frac2 print];
printf( " = " );
[frac3 print];
printf( "/n" );
// free memory
[frac1 release];
[frac2 release];
[frac3 release];
return 0;
}
output

1/3 * 2/5 = 2/15

Form:http://student.csdn.net/space.php?uid=121497&do=blog&id=46861

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.