一個java程式員自學IOS開發之路(一)

來源:互聯網
上載者:User

標籤:

首先自我介紹吧,南昌大學軟體工程專業2015界畢業生,從大學牲變到程式猿,由於在學校裡只學了Java語言和B/S架構開發,於是乎出來實習和工作也是搞Java網頁開發。

但是作為一名果粉,現階段想轉IOS開發,最近也開始自學了,寫點東西記下來吧

2015/9/17

Day 1

安裝虛擬機器並安裝Mac OS X系統(苦逼的我還在用聯想Y-470)

開始看C語言基礎,由於大學裡學過一點,還是比較輕鬆的

 

2015/9/19

Day 2

由於Java中沒有指標,開始看指標的相關知識

 

2015/9/20

Day 3

1)指標作為參數,在使用的時候要傳給它相應的地址值

2)數組名表示數組的首地址,數組作為參數時,系統會轉化成指標,所以盡量用指標作為參數

3)數組接收字串:可變字串

    指標接收字串:不可變字串(該字串在記憶體的常量區) //感覺類似Java中的String

4)指向函數的指標 用於在把函數當參數傳遞的情況 //類似Java的回呼函數

 

2015/9/21

Day 4

開始學習OC(Objective-C)

 

OC中類的寫法

@interface <#class name#> : <#superclass#>

//屬性以及反覆聲明(+表示類方法,-表示對象方法)

@end

 

@implementation class name

//方法的實現

- (傳回值類型)方法名:(參數1類型) 參數1 方法名/*最好寫參數說明*/:(參數2類型) 參數2 .....{

    

}

//提倡將方法名寫的像句子一樣好讓人理解

//個人剛開感覺方法名 很長,不適應,後來用多了感覺非常棒!

@end

 

OC中需要調用方法時直接寫一個[ ],然後左邊寫使用者,右邊寫方法名

OC中想要操作對象的屬性和方法,必須用指標

 

2015/9/22

Day 5

常見錯誤

1)只有聲明,沒有實現

2)缺少@end

3)成員變數不在{ }內

4)聲明中沒有初始化

最常見的異常資訊

unrecognized selector sent to instance

發送了一個無意義的訊息給執行個體/對象

 

例子:NSString

定義以及初始化

NSString *str = @"huihui";

方法

[NSString stringWithFormat:...];//類方法

[str length]; //對象方法

封裝思想,跟Java相同,屬性變數一般無妨讓外界直接使用,而是提供set,get方法來供別人使用

set方法名為 setXxx://xxx表示屬性名稱,跟Java相同前面有set並後面接駝峰式

get方法名為 xxx //xxx表屬性名稱,跟Java不同,OC中直接用屬性名稱做get方法名

self 關鍵字 相當於Java中的this

 

2015/9/23

Day 6

物件導向語言的三大特徵:封裝,繼承,多態。這對於我來講很簡單,當初Java的興趣就是源於物件導向的思想

前面說了封裝,再說OC裡的繼承

總父類NSObject

其中常用的基礎方法有 new,description(類似Java的toString方法)等等

OC為了迎合Java程式員,加入了點文法,哈哈^_^贊一個

對象.屬性(只能用於屬性)

實質是編譯器在後台調用set方法,get方法

 

對應Java中有自動產生set,get方法的方式,OC中當然也有,而且更棒,你在類檔案中不需要看見set,get方法(除非你重寫他幹特定的事)

這樣類檔案很精簡,不想Java的類檔案有一大坨都是set,get方法

@property 類型 變數名;

像上面那樣,簡單的加上@property

 

id 萬能指標 相當於NSObject *

構造方法的寫法 以init開頭,方法中調用 super init方法

(instancetype) initWith... {

    if (self = [super init]){

        ...

    }

    return self;

}

alloc方法是建立一個沒有初始化的對象

init初始化對象

一般不用new ,先alloc再 init

 

2015/9/24

Day 7

自訂構造方法

1)一般在開發中,需要給類一個對象方法和類方法,方便使用

對象方法 init開頭

類方法 方法名開頭與類名一致(首字母小寫)

構造方法中盡量用self,提高擴充性

2)如果A類中匯入了B類,而B類中也匯入了A類

這樣會造成循環參考

解決方案:不用#import引用,用@class匯入類 (.h檔案,也就是聲明檔案中)

但@class僅僅是告訴編譯器某某東西是個類,如果需要匯入其中的成員和方法時,還是要用#import匯入

一個java程式員自學IOS開發之路(一)

聯繫我們

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