国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《Head First Java》的思考總結:第一篇

寵來也 / 1614人閱讀

摘要:對象本身已知的事物被稱為實例變量俗稱屬性。對象可以執行的動作稱為方法。變量根據作用域分為全局變量,局部變量。對象有狀態和行為兩種屬性,狀態影響行為,行為影響狀態。

前言:

今天要分享的是關于《Head First Java》這本書的讀后感,這本書有點小厚差不多有七百頁左右,所以我花了幾乎整個國慶的時間去閱讀,學習。讀完之后發現,受益頗多。正如書名所說的,它是一本重視大腦的學習指南。無論你是Java開發工程師,還是android開發工程師,這本書都是良師益友。下面讓我們一起看看,我會以零碎的列表方式呈現,并以通俗的方式講解那些你迷糊不清的細節?

正文:

[1]無論你的程序有多大(也可以說不管有多少個類),一定都會有一個main()來作為程序的起點。
[2] System.out.printSystem.out.printIn的區別,很多人其實一直沒注意,快捷鍵用習慣了吧,?。都是在控制臺打印結果,區別就是:前者打印后不換行,后者(帶In的)打印后自動會換行。
[3]寫代碼如果你老是只會寫一個個不相關類組合在一起,來完成功能,也許你會缺失設計的靈性,有種設計手法叫“繼承“大家都知道,子類會繼承父類的方法,也就是說,子類會自動獲取父類的功能(提高了類的重用性)注:當父類被final修飾的時候,它無法當爹,它是無法被繼承的(為什么要用這個來修飾類,為了保持類的嚴謹性,避免被篡改,使用的場景:String類就是最好的例子)。當父類的方法被final修飾的時候,它是可以被子類繼承使用,但是請注意你是無法重寫(Override) 該方法。
[4]類跟對象的關系:類不是對象,卻是用來創建對象的模型,也可以說類是對象的藍圖。對象是已知的事物,對象會執行的動作。對象本身已知的事物被稱為:實例變量(instance variable)俗稱屬性。對象可以執行的動作稱為:方法(methods)。
[5]真正的面向對象的Java應用程序只會讓對象與對象交互,所以請多多以對象的角度考慮問題,編碼。
[6]變量根據作用域分為:全局變量,局部變量。根據類型分類:primitive主數據類型和引用。主數據類型主要有:boolean char byte short int long float double。注:編譯器不允許將大杯的內容放到小杯中,但是反過來可以。
[7]關于引用我覺得有必要拿出來特別講講:如Dog d = new Dog();事實上沒有對象變量這樣的東西存在,只有引用(reference)到對象的變量,對象引用變量保存的是存取對象的方法,它并不是對象的容器,而是類似指向對象的指針(你可以這么理解,它就是這個對象的遙控器,而不是這個對象本身)。
[8]無論被聲明來承載的是primitive主數據類型或對象引用,數組永遠都是對象。
[9]對象有狀態和行為兩種屬性,狀態影響行為,行為影響狀態。大家可以好好理解這句話。
[10]在聲明方法的時候,方法的參數叫做形參,如:void bark(int numOfBarks),numOfBarks就是形參。當我們調用方法的時候我們會傳入實參,:Dog d = new Dog();d.bark(3);,這里的3就是實參。注:對于傳入的實參如果是主數據類型的時候,無論方法內部執行什么,都不會改變這個實參,傳入的時候的值。但是傳入的實參如果是引用的時候,就會改變這個對象,特別注意引用是這個對象的遙控器,當然可以改掉這個對象的東西。
[11]方法有聲明返回的類型,void這代表沒有返回任何東西,其他的聲明類型的話,說好了要返回,就是要返回相應的數據結果。
[12]傳入與傳出方法的值類型可以隱含地放大或是明確地縮小。這句話大家也好好思考一下哈。
[13]封裝的基本原則:將你的實例變量標記為私有的,并提供公用的gettersetter來控制存取動作。封裝的意義:可以保護你的對象狀態不會隨意的被亂修改,如果要修改你的對象的狀態,他必須要調用你的setter方法,在這個setter方法中,你可以添加你想要的數據要求約束條件,來保證你的狀態的修改值是合法。
[14]實例變量與局部變量之間的差別:實例變量可以不用初始化就有默認值,局部變量沒有默認值!如果在變量被初始化前就要使用的話,編譯器會顯示錯誤!
[15] ==equals()的區別:哈哈這也是老問題了,使用==來比較primitive主數據類型,或者判斷兩個引用是否引用同一個對象。使用equals()來判斷兩個對象是否在意義上相等。(什么?不好懂?通常的用法就是如果比較字符串就用equals,如果比較數字是不是相等就用==。?)
[16]我們在設計編寫類的時候,最好遵循下面的順序:找出類應該做的事情,列出實例變量和方法,編寫方法的偽碼,編寫方法的測試用程序,實現類,測試方法,除錯或重新設計,完成。也就是三個大步驟:偽碼,測試碼,真實碼。
[17]關于for循環分為兩種:第一種基本(非加強版)的for循環,如:for(int i=0;i<100;i++){};第二種(加強版)的for循環,如:for(String name :nameArray){};注:請多寫寫不一樣的好代碼,切莫一個挫代碼能用就行的心態,到處寫,這會讓你的技術停留不前。
[18]關于Java API的小常識:以javax開頭的包就會知道他以前曾經是擴展。API是程序員的得力幫手,好工具,所以要善于查詢API并熟練的掌握,會讓你編碼更從容,優雅。大家可以上java.sun.com的網址里面去在線查找API,也可以下載離線到本地。
[19]使用import會把程序變大嗎?編譯過程會把包或類包進去嗎?答案:importCinclude并不相同。運用import只是幫你省下每個類前面的包名稱而已。程序不會因為用了import而變大或變慢。
[20]為何我不必importString類或System類?答案:要記得java.lang是個預先被引用的包。因為java.lang是個經常會用到的基礎包,所以你可以不必制定名稱。java.lang.Stringjava.lang.System是獨一無二的class,Java會知道要去哪里找。
[21]繼承父類,并覆蓋(Override)方法后,可以讓子類更好的擴展從父類繼承下來的功能,如:public void roam(){super .roam();//your code},注意super的作用,它可以讓你在父類的方法上,加上額外的行為,這是非常重要的一種寫法!一定要學會使用。
[22]繼承的意義:避免了重復的程序代碼,定義出共同的協議。是多態的一種手法,如:Animal myDog = new Dog();方法的參數跟返回結果都可以使用這種多態的手法,可以大大的提高你的方法的擴展性。
[23]覆蓋的原則:參數必須要一樣,且返回類型必須要兼容,不能降低方法的存取權限。
[24]還有一種方法叫重載(overload),重載的規則:返回類型可以不同,不能只改變返回類型,可以更改存取權限。注:重載跟多態毫無關系,重載的使用情景在本類中,重寫的使用情景在繼承的時候體現。
[25]接口是一種100%純抽象的類,它是多態java的重點。
[26]抽象類的聲明方法:在類的聲明前面加上抽象類關鍵詞abstract就好,如:abstract class Animal{public void roam()};大家想一想為什么要設計出抽象類,原因就在于:像Animal這樣的對象太抽象,不應該被實例化出來,編譯器不會讓你初始化出現類,如果你要想使用它,那就繼承它吧?。
[27]抽象的類代表此類必須要extend過,抽象的方法代表此方法一定要被覆蓋過。如果你聲明出一個抽象的方法,就必須將類也標記為抽象的。你不能在非抽象類中擁有抽象方法。注:子類也可以不用實現抽象方法,?,只要你把子類也聲明為抽象類,讓后讓你子類去繼承你,讓它去實現這個抽象方法,這個機制叫抽象機制,將實現的負擔轉給下層。這個手法很重要。
[28]就算你不知道,但實際上所有的類都是從對象給繼承出來的,沒有直接繼承過其他類的類會是隱含的繼承對象。
[29]使用Object類型的多態引用是會付出代價的,因為Object實在是辨識度太低,很多時候都要必須強制轉換類型才能用,很不方便。而且最重要的一點就是:就算你知道對象有這個功能,編譯器還是會把它當作一般的Object來看待。編譯器只管引用的類型,而不是對象的類型。注:(不好懂?哈哈,如:Object o = al.get(index);o.bark();//這個o其實是一個Dog類型的對象,有bark()的方法,但是因為是編譯器只知道他現在是Object類型,這個類型是沒有該方法的,所以編譯器不會通過編譯,懂了吧?)。
[30]當你在不知道是不是可以把Object o對象轉化成Dog類型,怎么辦?簡單:if(o instanceof Dog){Dog d = (Dog) o;}。
[31] Java為什么不支持多重繼承,因為會導致“致命方塊”,什么是“致命方塊”,舉個例子:當你繼承兩個父類的時候,恰巧兩個父類有一樣方法,但是里面的實現卻不一樣,你說做兒子的怎么知道我會繼承那個方法,?,這就是問題,編譯器也不知道,所以這就是不支持多重繼承的原因。
[32]接口可以用來解決多重繼承的問題,卻又不會產生致命方塊這種問題,因為它根本就沒有實現,所以木有關系。

總結:

據說每個人在一定時間內接受的信息量都是有限的,因為信息量有點大,畢竟七百頁的好書,所以我準備寫續集啦,希望大家帶著思考的心態去理解閱讀,我相信,對大家絕對有好處的。續集將陸陸續續的推出,敬請期待。?

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/64663.html

相關文章

  • Head First Java思考總結:第三篇

    摘要:一旦線程執行線程會進入可執行狀態,它會在可執行與執行中兩種狀態中來來去去,同時也有另外一種狀態暫時不可執行又稱為被堵塞狀態。當對象有一個或多個同步化的方法時,線程只有在取得對象鎖的鑰匙時才能進入同步化的方法。 前言: 今天要分享的是關于 《Head First Java》這本書的讀后感,這本書有點小厚差不多有七百頁左右,所以我花了幾乎整個國慶的時間去閱讀,學習。讀完之后發現,受益頗多。...

    zhangrxiang 評論0 收藏0
  • Head First Java思考總結:第二篇

    摘要:局部變量和方法的參數都是被聲明在方法中,它們是暫時的,且生命周期只限于方法在放在棧上的這段期間也就是方法調用至執行完畢為止。讓一個類不被實例化的方法有兩種一種是將類聲明稱抽象類,第二種是將其構造函數標記為私有的。 前言: 今天要分享的是關于 《Head First Java》這本書的讀后感,這本書有點小厚差不多有七百頁左右,所以我花了幾乎整個國慶的時間去閱讀,學習。讀完之后發現,受益頗...

    jindong 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<