国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

從零開(kāi)始學(xué)習(xí)Object-C---第三天

2019-11-14 19:55:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天主要涉及Object-C中類(lèi),對(duì)象和方法的使用,這也是與C語(yǔ)言不同的地方,C語(yǔ)言被定義為過(guò)程性語(yǔ)言,而Object-C則像java和C#一樣是面向?qū)ο蟆R欢未a開(kāi)始新的學(xué)習(xí),首先新建文件 main.m 主函數(shù), NSObject+Fraction.h(如同java中定義接口)和NSObject+Fraction.m(如同java中接口實(shí)現(xiàn)類(lèi))

////  NSObject+Fraction.h//  Demo1////  Created by lee on 14/10/28.//  Copyright (c) 2014年 lee. All rights reserved.//#import <Foundation/Foundation.h>@interface Fraction: NSObject{    int numerator;    int denominator;}-(void) PRint;-(void) setNumerator: (int) n;-(void) setDenominator: (int) d;-(void) result;@end

首先講解@interface部分

1.Fraction類(lèi)名,通常首字母大寫(xiě)

2.Fraction: NSObject 定義類(lèi)來(lái)自何處即定義新類(lèi)時(shí)必須指明它的父類(lèi)

3.{...}中定義的為類(lèi)成員,即實(shí)例變量

4.-(void) print;等定義處理該類(lèi)的對(duì)象時(shí)將要用到的方法。

通用格式如下:

@interface <#class name#> : <#superclass#>{    memberDeclarations;}methodDeclarations;@end

5.實(shí)例方法 : -(void) setNumerator: (int) n;

  5.1 開(kāi)頭的-號(hào)表明該方法為實(shí)例方法,還有一種為+號(hào)開(kāi)頭,表明該方法為類(lèi)方法。

  5.2(void)表示該方法的返回值類(lèi)型。

  5.3 setNumerator 表示該方法的名稱(chēng)。

  5.4 (int) n 表示該方法需要的參數(shù),一個(gè)整形的參數(shù)。

  5.5 每一個(gè)方法均以;結(jié)束

6.方法聲明如圖所示:

////  NSObject+Fraction.m//  Demo1////  Created by lee on 14/10/28.//  Copyright (c) 2014年 lee. All rights reserved.//#import "NSObject+Fraction.h"@implementation Fraction: NSObject-(void) print{    NSLog(@"%i/%i", numerator, denominator);}-(void) setNumerator:(int)n{    numerator = n;}-(void) setDenominator:(int)d{    denominator = d;}-(void) result{    int quotient = numerator/denominator;    NSLog(@"the quotient is %i :", quotient);}@end

@implementation部分講解

1.@interface中聲明方法,@implementation中實(shí)現(xiàn)。

2.@implementation中類(lèi)名與@interface中類(lèi)名相同。

3.@implementation中包含@interface中指定的每個(gè)方法的代碼。

////  main.m//  Demo1////  Created by lee on 14/10/28.//  Copyright (c) 2014年 lee. All rights reserved.//#import <Foundation/Foundation.h>#import "NSObject+Fraction.h"int main(int argc, const char * argv[]) {    @autoreleasepool {        int quotient, numertor, denominator;        numertor = 10;        denominator = 2;        quotient = numertor/denominator;        NSLog(@"The fraction is %i/%i /nthe quotient is %i", numertor, denominator, quotient);                NSLog(@"*** break ***");                Fraction *myFraction;        myFraction = [Fraction alloc];        myFraction = [myFraction init];                [myFraction setNumerator: 10];        [myFraction setDenominator: 2];        NSLog(@"The value of myFraction is :");        [myFraction print];        [myFraction result];    }    return 0;}

兩種方法來(lái)實(shí)現(xiàn)兩數(shù)的相除,主要講解下一種即 NSLog(@"*** break ***");后面的部分,有C基礎(chǔ)的能很快的明白

1.Fraction *myFraction;用法同C語(yǔ)言中指針類(lèi)似,表示定義Fraction類(lèi)型的對(duì)象。

2.對(duì)象建立后,需要為該存儲(chǔ)對(duì)象分配存儲(chǔ)空間,即myFraction = [Fraction alloc];

3.alloc獲得類(lèi)的新實(shí)例,使得對(duì)象的所有實(shí)例變量成初始化狀態(tài)。

4.然后需要對(duì)對(duì)象進(jìn)行實(shí)例化操作,即myFraction = [myFraction init];

5.init用語(yǔ)初始化類(lèi)的實(shí)例變量。

6.上述方法簡(jiǎn)寫(xiě)如下:Fraction *myFraction = [[Fraction alloc] init];

7.[myFraction setNumerator: 10];調(diào)用方法存儲(chǔ)實(shí)例變量。

運(yùn)行結(jié)果如下:

2014-10-29 00:52:37.980 Demo1[2834:13881] The fraction is 10/2 the quotient is 52014-10-29 00:52:37.981 Demo1[2834:13881] *** break ***2014-10-29 00:52:37.981 Demo1[2834:13881] The value of myFraction is :2014-10-29 00:52:37.981 Demo1[2834:13881] 10/22014-10-29 00:52:37.981 Demo1[2834:13881] the quotient is 5 :Program ended with exit code: 0

注:1.Object-C中變量名稱(chēng)命名規(guī)則:名稱(chēng)必須以字母或下劃線開(kāi)頭,之后可以是任何字母,下劃線或者數(shù)字組合。

  2.Object-C保留名不能作為變量名,如:int

  3.Object-C中大小寫(xiě)字母是有區(qū)別的。如:sum和Sum和SUM是表示不同的變量。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 民权县| 淅川县| 宜春市| 高州市| 宁夏| 辰溪县| 称多县| 库车县| 册亨县| 沾化县| 榆社县| 湖北省| 庆阳市| 阜新市| 墨江| 宝丰县| 洪湖市| 石渠县| 江城| 奉化市| 周口市| 竹溪县| 宁化县| 湘潭县| 明光市| 铁岭市| 临泽县| 尼木县| 英吉沙县| 思茅市| 资兴市| 张家口市| 舟山市| 神木县| 大冶市| 常宁市| 岳西县| 二连浩特市| 无锡市| 河间市| 乌兰县|