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


首先自我介紹吧,南昌大學軟件工程專業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相同,屬性變量一般無妨讓外界直接使用,而是提供setget方法來供別人使用

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

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

self 關鍵字 相當於Java中的this

 

2015/9/23

Day 6

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

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

總父類NSObject

其中常用的基礎方法有 newdescription(類似JavatoString方法)等等

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

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

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

 

對應Java中有自動生成setget方法的方式,OC中當然也有,而且更棒,你在類文件中不需要看見setget方法(除非你重寫他干特定的事)

這樣類文件很精簡,不想Java的類文件有一大坨都是setget方法

@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導入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM