主要說說Java的幾大塊吧,無法說得很細,因為其實每一塊拿出來都能說很多,我就說一下這幾塊學習的時候的重點或者應該注意的東西。
數值類型:
雖然是面向對象的語言,但是在使用上數值類型還是必不可少的,如果在C的學習中已經掌握了C的數值計算和轉換規則,那我想這裡應該沒有什麼問題,只有兩點需要注意:1、14.0這樣的浮點常量被認為是double型,只有加上f後綴才是float型的;2、整數常量說起來被認為是int型,但是在編譯時,可以認為編譯器將其看作能表示該數的最小數值,因此byte b = 100;不會報錯。
引用類型:
我也是從C/C++轉過來的,其實所謂引用類型在C++中已有體現,就是傳參的時候有一種引用類型,從C來考慮,它就是一個指針,只不過,我們不能對它進行指針上的硬操作。所以這裡的重點是:1、Java裡所有的對象都是在堆中生成的,所以需要類似指針的東西指向它,那就是引用;2、我們通過引用操作的是引用所指向的對象,除了賦值操作外,應該就沒有什麼操作是針對引用本身的了,這一點是C的指針與Java的引用區別所在。
類和對象:
這是一個大塊,有很多東西,不展開講了,就說幾個重點:1、類方法、類屬性與成員方法、成員屬性在加載、初始化、使用上的異同;2、在構造函數中,this()和super()的用法;3、子類的加載過程、初始化過程和構造過程;4、方法的重載和覆寫;5、覆寫所引出的多態問題。(注意:多態之應用在方法上,對屬性沒有作用)
函數調用的參數傳遞:
如果把引用類型所記錄的地址值,就看作是引用類型變量的值的話,那麼,Java的所有方法調用的時候,都是采用的值傳遞??數值類型傳數值,引用類型傳地址。
IO流:
與C比起來,Java的輸入輸出,尤其是輸入是非常麻煩的,也許是因為出於面向對象的考慮吧?不知道。Java提供了很多的IO流,但是我們並不必將各種IO都搞清楚,我們只需要了解字節流與字符流各有什麼功能,字符流是如何在字節流之上構造的,幾乎所有的字符流構造的時候都是建立在一個已有的字節流的基礎上的,並且它的這種設計使得我們可以像套管子一樣,將IO流一節一節套起來,直到得到我們想使用的IO對象(例:BufferedReader的使用)。在我們以後使用的時候,我們可以再去查API,我覺得主要要看的幾個類是:FileReader、FileWriter、BufferedReader,再配合上System.out對象,對於文本的輸入、輸出來說,就足夠用了,至於其他的,我覺得不考試的話,沒有必要看那麼多,用的時候再看了。(我使用Java一年半來,基本上就在使用BufferedReader和System.out)
容器:
個人認為,這是Java編程的一大利器,我最愛用的類是:ArrayList(List)作為可變長數組、HashMap(Map)用來建立查找表,Set我很少用,只在HashMap的使用中連帶用過一些。通過對這兩個類的熟悉,能夠將List、Set和Map三大類的基本用法掌握。另外它的幾個輔助類要掌握:Iterator和Collections。Collections類提供容器的一些通用工具,比如排序。而說到排序,就牽扯出了比較器:Comparator。能夠熟練使用Comparator類,可以讓你為自己的需求和自己的類定制排序方案。
AWT和SWING:
個人認為,Java在圖形界面的制作上有著非常好的封裝性,我以前曾經試圖學過MFC,MFC在生成圖形界面的時候會幫助你生成一些代碼,然後讓你在這些代碼的指定位置添加代碼以實現功能,我這個人有個習慣,如果讓我看到了一些東西,那麼我不搞清除為什麼這麼寫,就不會往下走,看到那許多代碼,自然就想弄清楚那些是什麼,結果引出來好多知識,後來我才知道其中有些是調用WinAPI,結果我到現在還是不會用MFC。這裡並不是貶低MFC,我相信MFC有其過人之處,只不過個人認為它的封裝性做得不好,暴露出了太多東西,也許能夠提高靈活性,不過,可能我跟它無緣:(。在這方面Java就做得不錯,給你一個類,你用就是了,它將圖形界面的低層實現隱藏的很好,將其作為一個對象給你,而你只需要在這個對象上修修改改,挺方便的。
作為初學者,我覺得AWT的重點在於它的幾個Listener的用法,還有布局格式,然後就是那許多的Component的用處和用法。(不過,我覺得,等到用的時候再去找合適的Component進行學習應該也不算太遲 ^_^)
不過,因為我個人使用的原因,所以至今AWT和SWING都用得很少,所以這方面也就不便多說了,抱歉。寫這些並不是告訴大家怎麼解決問題,因為每一個都有很多可寫,只是希望能給初學者一點參考,希望能夠幫助初學者們有的放矢地看書。