Objective-C基礎筆記(1)基本概念和第一個程式,概念的第一個特徵

來源:互聯網
上載者:User

Objective-C基礎筆記(1)基本概念和第一個程式,概念的第一個特徵
一、基本概念

Objective-C(簡稱OC)是iOS開發的核心語言,蘋果公司在維護,在開發過程中也會配合著使用C語言、C++,OC主要負責UI介面,C語言、C++可用於圖形處理。C語言是面向過程的語言,OC是在C語言基礎上加上了一層物件導向的文法(將複雜麵向對象文法去掉了)。我們可以使用OC開發Mac OS X平台和IOS平台的應用程式。

2014年10月程式設計語言熱門排行榜(http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)


從這個熱門排行榜上可以看到,高居榜首的還是c、java、object-c、c++、c#、php、python、javascript.

注意:

1、Objective-C是沒有包的概念的,也就是沒有命名空間機制,而是通過給類名添加首碼來防止類名衝突。

2、Objective-C中的關鍵字以@開頭,防止和c/c++的關鍵字衝突。

3、Objective-C中的字串以@開頭。

文法:


需要注意的是上面的紅色字部分:

BOOL類型(YES\NO)其實就是1和0

nil相當於Java中的null

self相當於Java中的this

for(xx in xx)和javascript的快速遍曆相同,相當於java中的for...each

繼承和Java相同是單繼承

二、第一個OC程式
選擇命令列程式
選擇語言位Objective-C,建立好的工程如下:
////  main.m//  firstOCProj////  Created by lixiaoqiang on 14/11/11.//  Copyright (c) 2014年 lixiaoqiang. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        // insert code here...        NSLog(@"Hello, World!");    }    return 0;}
控制台輸出:

2014-11-11 23:44:36.052 firstOCProj[1649:99047] Hello, World!

上面的@autoreleasepool和記憶體管理有關,暫時不用管。#import  <Foundation/Foundation.h> : import和include的作用一樣,唯一區別是可以防止標頭檔被重複包含。NSLog():向控制台輸出日誌,相當於c語言中的printf(),和android中的Log三、類的基本文法OC中的類分為兩個檔案,一個是.h檔案,另一個是.m檔案(是OC檔案的尾碼名).h : 類的聲明檔案,用於聲明成員變數和方法。.m : 實現.h中聲明的方法。建立Student.h和Student.m檔案,工程如下:
Student.h檔案
////  Student.h//  firstOCProj////  Created by lixiaoqiang on 14/11/11.//  Copyright (c) 2014年 lixiaoqiang. All rights reserved.////該檔案只是用來聲明Student這個類有哪些成員變數和方法//包含NSObject所在的標頭檔#import <Foundation/Foundation.h>//@interface @end代表聲明一個類//和Java不同的是OC中不能省略NSObject的預設繼承// : 代表繼承@interface Student : NSObject{    //定義成員變數(必須定義在該括弧內)    int age;}//age的get方法//如果是動態方法 -//如果是靜態方法 + (-和+必須添加)//OC中的參數類型都用括弧括住//.h檔案中的方法都是公用方法- (int)age;//age的set方法//OC中一個 : 對應一個參數- (void)setAge:(int)newAge;@end
Student.m檔案
////  Student.m//  firstOCProj////  Created by lixiaoqiang on 14/11/11.//  Copyright (c) 2014年 lixiaoqiang. All rights reserved.////自訂的標頭檔使用雙引號#import "Student.h"@implementation Student- (int)getAge {    return age; //age在父類中}- (void)setAge:(int)newAge {    age = newAge;}@end
main.m檔案
////  main.m//  firstOCProj////  Created by lixiaoqiang on 14/11/11.//  Copyright (c) 2014年 lixiaoqiang. All rights reserved.//#import <Foundation/Foundation.h>#import "Student.h"int main(int argc, const char * argv[]) {    @autoreleasepool {                //建立一個Student對象        //1、調用一個靜態方法alloc分配記憶體        //OC 中通過類名調用方法 [類名 方法名]        //[Student alloc]返回一個指標,在OC中stu稱為對象        //這個其實和Java中的對象(this)是一樣的(引用)        //Student *stu = [Student alloc];        //2、調用一個動態方法init進行初始化        //stu = [stu init];                //串連起來使用        Student *stu = [[Student alloc] init];        [stu setAge:100];        NSLog(@"調用了setAge方法");        int age = [stu age];        NSLog(@"Student的age是%i", age);        //釋放對象        //[stu release];    }    return 0;}
運行結果:

2014-11-12 00:25:03.661 firstOCProj[1707:110472] 調用了setAge方法

2014-11-12 00:25:03.663 firstOCProj[1707:110472] Student的age是100



聯繫我們

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