OBJECTIVE-C入門(1) HELLO WORLD

來源:互聯網
上載者:User

面向 對象的C語言

    提及物件導向的語言,大多數Windows下的開發人員會首先想到的是C++,C#或者Java。但是,如果你首先想到的是Objective-C,那麼你應該是一位Mac OS下的開發人員,這個現代電腦系統中,最多應用Objective-C的Apple公司Mac OS X。

 

Object-CC++

    Object-C是在C語言的基礎上,吸收了Smalltalk的物件導向成分創造出的,這與大多數以Java為基礎的物件導向語言非常的不同。

    而且,與其他物件導向語言隱藏類在記憶體上的構造不同的是,Object-C用C語言來實作類別,也就是說,和現代物件導向的思維方式相反,不是在語言中重新引進物件導向的元素,而是藉助設計模式,在C語言中,不追加新元素的前提下實現物件導向的思想。舉例來說,C++或者Java語言本身中就包含有類這個物件導向的概念,更通俗的說法是class這個關鍵字就是語言的一個組成部分,而在Object-C中,類的定義要放到標頭檔中進行,其本質上就是一個用typedef隱藏過的構造體。所以,Object-C和C語言有很高的親和性,這會使熟悉Java的開發人員非常難以接受,然而對熟悉C語言和設計模式的開發人員,卻是一個好機會。

 

Object-C的編譯環境

    如果系統是Mac OS X的話,安裝附屬的開發環境後立刻就能開始使用Objective-C 。而Linux系統下的GCC或者專門應用於Windows的GCC也能編譯Objective-C。

 

新的預先處理命令

    Objective-C是C語言的擴張,C語言是Objective-C的子集,所以C語言不做任何修改就能在Objective-C環境下運行。更準確的說,Objective-C不是C語言本身的擴張,而是對編譯器的擴張,編譯器最終會將Objective-C翻譯成C語言,而兩者編譯的結果代碼也會是完全一樣。在Objective-C中新追加的關鍵字,也不過是在標頭檔中用#define或者typedef的重新定義而已。

    所以,為了正確運行Objective-C,必須首先引進特定的標頭檔,Objective-C中新引進的關鍵字和類型,都定義在objc/objc.h這個標頭檔中。但是請記住,objc/objc.h中定義的機能僅僅是支援Objective-C正常運行最小集合。而這個標頭檔隨編譯器的不同而有所不同,在GCC編譯器中為objc/Object.h,在Mac OSCococa中則為Foundation/NSObject.h。在Object-C中不依存編譯器的標頭檔記述方式為objc/objc.h

    引用標頭檔的方式,在Object-C中增加了#import這個預先處理命令。#import除了不會重複引進已經存在的檔案之外(重複引用在C語言中是一個令人頭疼的問題),用法和功能都和#include 一樣。

#import <標頭檔>
#import "標頭檔"

     如果你仍然堅持使用#include來引進標頭檔的話,請不要忘了處理重複引用的問題。

    另外,和以往的C語言一樣,為了使用printf()等標準函數,還需要引用stdio.h標頭檔,還需要說明的是,Objective-C來源程式檔案的副檔名不是.c而是.m。

#import <stdio.h>
#import <objc/Object.h>

int main() {
printf("Hello World \n");
printf("Hello Wordl Too \n");  
    return 0;
}

     從上面的程式可以看出,Objective-C和C語言幾乎完全一樣,事實上Objective-C不是與C語言類似,而是和C語言具有完全的互換性,或者說本質上就是C語言。

注釋方式上,除了可以使用C語言的/*    */之外,Objective-C又增加了 //這種單行的注釋方式。

下篇:Objective-C入門(2)  類的聲明和定義

相關文章

聯繫我們

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