1.數(shù)據(jù)類型
?????? 在java 中蝌箍,要注意的是double魁巩,float族吻,long這三種數(shù)據(jù)類型帽借。
?????? java中默認小數(shù)類型都是double,因此在要用到float 時超歌,要在小數(shù)的最后加上f或F砍艾,long類型也是如此,在聲明時在最后加上l或L巍举。而在小數(shù)類型轉(zhuǎn)為整數(shù)類型時脆荷,會有精度損失。
?????? 數(shù)字類型字符串類型時懊悯,其實并沒有把這個東西從這種類型"轉(zhuǎn)換"成另一種類型蜓谋,它只是根據(jù)?原來的內(nèi)容創(chuàng)建一個新東西。
2.面向?qū)ο?/h1>2-1 對象是什么
2-1 對象是什么
?????? 在面向?qū)ο笏枷胫刑糠郑f物皆可為對象桃焕,小到一個螞蟻,大到一個國家捧毛、星系都可以看成是一個對象观堂。那對象是在java中如何體現(xiàn)的呢:通常java中一個.java文件有且只有一個與文件名相同的主類让网,有人就說了,這個類就是對象师痕。我認為這種說法是不合理的溃睹,為什么呢,舉個例子胰坟,地球上有60多億人因篇,你難道為每個都建一個類嗎。因此腕铸,java中的類應該是多個對象共同特征的集合惜犀。正是這樣,才有繼承狠裹,實現(xiàn)等這些處理類的思想虽界。
2-2 override,overload和構(gòu)造方法
?????? 首先涛菠,前兩種的作用對象通常是方法莉御,override是對方法重寫,overload是對方法重載俗冻。
?????? override要求對重寫的方法礁叔,參數(shù)不變,返回值類型不變迄薄,變得只是方法的內(nèi)部實現(xiàn)琅关。override通常發(fā)生在子類中。子類中定義和父類中完全一樣(名字讥蔽、參數(shù)涣易、返回值)的方法就叫“重寫(Override)或覆蓋。如果父類中的某些方法不希望被子類Override冶伞,那么標記為final即可新症。
?????? 而overload是java中多態(tài)思想的一種體現(xiàn)之處,用同一種方法干相同的事情响禽。比如我比較兩個數(shù)的大小徒爹,而數(shù)又分為整形和小數(shù),通過方法重載可以很好的解決這類問題芋类。
?????? 構(gòu)造方法可以說是特殊的隆嗅,因為它的使用對象是類。構(gòu)造方法沒有返回值侯繁,因為一個類是不可能有返回值的胖喳。構(gòu)造方法是用于對類的成員變量進行初始化,因此要求構(gòu)造方法之間的參數(shù)是不能完全相同的巫击,當沒有有參構(gòu)造方法時禀晓,java虛擬機會默認的添上一個無參的構(gòu)造方法,一旦自己動手寫了有參的構(gòu)造方法坝锰,那么java虛擬機便不會自動增添一個無參的構(gòu)造方法粹懒,因此在寫了有參構(gòu)造方法后,沒有顯式的給出無參構(gòu)造方法的話顷级,在調(diào)用無參構(gòu)造方法時會發(fā)生錯誤凫乖。
2-3 什么是繼承
?????? 繼承的目的是增強代碼的復用率,繼承發(fā)生在父類和子類之間弓颈,子類會繼承父類非私有的所有東西帽芽。
?????? Java中一個類可以“繼承”自其他類,如果A繼承自B翔冀,則A叫做B的子類导街,B叫做A的父類(基類)。子類會從父類繼承所有非private成員纤子。子類還可以有子類搬瑰。
?????? Java中一個類只能有一個父類(單繼承),如果沒指定父類控硼,則Java內(nèi)置的Object為父類泽论。
?????? 在java中,能夠調(diào)用什么方法由變量類型決定卡乾,執(zhí)行誰的方法由實際指向的對象決定翼悴,因此,一個父類類型的變量是可以指向子類的對象的幔妨。
2-4 什么是封裝
??????? 封裝的目的是提高數(shù)據(jù)和操作的安全性鹦赎,只要在類的屬性前加上private關(guān)鍵字,并給出要用到的set和get方法就實現(xiàn)了封裝陶冷。為什么要有封裝呢钙姊,舉個例子,一個行駛的汽車埂伦,要調(diào)節(jié)檔位時煞额,撥動一下檔桿就好了,其實你也可以用手在發(fā)動機那里去撥動的沾谜,但會很危險膊毁。這里體現(xiàn)的意義和面向?qū)ο蟮姆庋b有點類似,不過在基跑,前期學習婚温,拿來主義就可以了,以后再討論其價值媳否。
2-5 什么是多態(tài)
?????? 多態(tài)僅僅是一種思想栅螟,在代碼上不像封裝那樣有非常鮮明的體現(xiàn)荆秦,在java中,最好理解的多態(tài)的體現(xiàn)就是overload力图。
多態(tài)的定義:指允許不同類的對象對同一消息做出響應步绸。即同一消息可以根據(jù)發(fā)送對象的不同而采 用多種不同的行為方式。(發(fā)送消息就是函數(shù)調(diào)用)吃媒。
多態(tài)存在的三個必要條件
一瓤介、要有繼承;
二赘那、要有重寫刑桑;
三、父類引用指向子類對象募舟。
多態(tài)體現(xiàn)出的意義我感覺就是希望代碼能像人一樣對不同的刺激做出最合適的反應祠斧。
2-6 抽象和接口
?????? 抽象類本質(zhì)是對多個類中的具有共同特征的抽象,而抽象方法是對類中的具有共同特征的方法的抽象拱礁。他們的目的都是提高代碼的復用率梁肿,因此抽象方法是沒有實現(xiàn)的,而抽象類中不但有抽象方法觅彰,也有實現(xiàn)了的方法吩蔑。
?????? 接口和抽象類有比較明顯的區(qū)別,接口中有且只允許有未實現(xiàn)的方法填抬,接口中不能像抽象類那樣有自己的屬性烛芬,因此java中定義接口用的是interface,因為一個類中有屬性和方法才是有真正意義的飒责,在繼承抽象類和實現(xiàn)接口時赘娄,要完成父類和接口中所有未實現(xiàn)的方法,否則宏蛉,子類要定義為抽象類遣臼,正所謂父債子償,否則孫子來償還拾并。
3.面向?qū)ο蠛兔嫦蜻^程的比較
?????? 最能體現(xiàn)面向過程思想的就是c語言揍堰,而如今的面向?qū)ο笳Z言則是占據(jù)了絕大部分的江山,由此可看出面向?qū)ο蟮镊攘π嵋澹@兩種思想的關(guān)系可以看成是一個X屏歹,當問題的規(guī)模比較小時,用面向過程的思想是效率更高的之碗,而當問題達到一定的復雜度時蝙眶,可以這樣說,用面向過程是無法亦或很難來實現(xiàn)的褪那,所以面向?qū)ο笤趯W習時是比較難的幽纷,而只有使用面向?qū)ο髮戇^大的項目之后式塌,才可以說對面向?qū)ο笥幸欢ǖ恼J識∮呀可見面向?qū)ο笫嵌嗝吹膮柡透挥绪攘Φ摹?/p>