【學習ios之路:Object-C】類與對象

來源:互聯網
上載者:User

標籤:

1.物件導向和面向過程概念

1).面向過程

面向過程:以過程為核心,注重的是完成事件的詳細步驟,一步一步如何?.

2).物件導向

物件導向:以事物為核心,注重的是參與該事件的事物應該具備的功能.所以完成該事件只是事物所有功能中的一個功能.


2.類與對象

類: 類是具有相同特徵以及行為的事物的抽象,它是一個抽象的概念,不具體.

對象: 類的執行個體.類的具體體現.生活中的萬物都是對象.

3.OO與OOP

OO:(Object Oritented)物件導向

OOP:(Object Oriented Programming)


[email protected]是OC標誌

NSLog(@"%hello World");//輸出的目的是為了驗證.


5.如何建立對象

1.開闢空間(堆區)

例:Person  *p = [Person alloc];//開闢空間, +號方法,類方法.

//+(id)alloc; //id等同於void *,泛型,可以代表所有的對象.

//因為p儲存著對象堆區空間的地址,所有間接把p叫做對象,但是本質還是指標變數.


2.初始化

即:  p = [p  init]; //初始化,nil null 0


6.OC中方法的調用形式: 訊息發送機制

[receiver message];

1.+號方法     類方法

2.-號方法      對象方法(執行個體方法)

例如:

  Car *car = [[Car alloc] init];  [car run];//run();函數

7.類的定義
 *  類的定義分為兩部分:1.介面部分(.h檔案中)2.實現部門(.m檔案中)
 *  介面部分: 以 @interface 開頭 + 類型 : (冒號表示繼承)  父類名  @end 作為結束
 *  類的介面部分的內容必須寫在 @interface 與 @end 之間.
 *  類的實現主要是方法的實現.
 *  類的介面部分提供執行個體變數以及方法的聲明
 *  類的本質就是自訂的一種資料類型.

例如:1).Student.h聲明檔案

@interface Student : NSObject{    @public        NSString *_name;//姓名    NSInteger _age;//年齡    NSInteger _num;//學號    NSString *_glass; //班級    //執行個體變數一定要寫在大括弧之內,而且大括弧之內也只能寫執行個體變數.    //對應類的特徵,執行個體變數(等同結構體的結構體成員) }- (void)study;//方法名:study- (void)message:(NSString *)name1;//無傳回值,有一個參數,參數類型NSString *類型//方法名 sumValueWithA: withB: withC:- (NSInteger)sumValueWithA:(NSInteger)a withB:(NSInteger)b withC:(NSInteger)c; - (NSInteger)maxGBWithA:(NSInteger)a withB:(NSInteger)b;//方法名 maxGBWithA: withB: @end

2).Student.m實現檔案.
 *  類的實現部分: 以@implementation 開頭  + 實作類別名 @end 作為實現部分的結束.
 *  類的實現代碼 必須卸載 @implementation 與@end 之間才有效.


@implementation Student- (void)study {    NSLog(@"學習去!");}- (NSInteger)moneyValueWithA:(NSInteger)a withB:(NSInteger)b {        return a * b;}- (void)message:(NSString *)name1 {    NSString *s = name1;       NSLog(@"%@",s);}//最小公倍數- (NSInteger)maxGBWithA:(NSInteger)a withB:(NSInteger)b {     //儲存a,b的值    NSInteger tempA = a;     NSInteger tempB = b;     NSInteger rem = a % b;    while(rem != 0) {        a = b;        b = rem;        rem = a % b;    }    return (tempA * tempB) / b;} @end 
3).  main函數實現.

        Student *stu = [[Student alloc] init];      [stu study];      NSInteger mon = [stu moneyValueWithA:10 withB:20];      NSLog(@"%ld", mon);      [stu message:@"asdf"];

注:
      代碼規範:
      1.類名:有英文單片語成,每個單詞的首字母大寫,不能出現數字,更不能出現拼音.
      2.執行個體變數: 有英文單片語成,除了第一個單詞的首字母小寫以外,其他單字首大寫.
      3.一般情況下一對一,h和m檔案中定義一個類.
    

【學習ios之路:Object-C】類與對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.