以下是小編總結(jié)的Java基礎(chǔ)中的基礎(chǔ)。因?yàn)樽罱泻芏嗤瑢W(xué)都在問基礎(chǔ)問題,這里小編便給大家重新將Java基礎(chǔ)知識(shí)梳理一遍。
(一)基本數(shù)據(jù)類型
1.標(biāo)識(shí)符區(qū)分大小寫:hello與Hello是不同的標(biāo)識(shí)符。
2.基本數(shù)據(jù)類型的精度由低到高依次為:byteshortcharintlongfloatdouble
3.格式控制符號(hào):
%d int類型
%c char類型
%f 浮點(diǎn)類型
%s 字符類型
例如:
System.out.println("%d,%f",1,1.23)
4.數(shù)組的兩種創(chuàng)建方式:
Object[]arry=newObject[n];
Object[]arry=newObject[]{x,y,z,..};
(二)表達(dá)式
1.switchcase語句:case下加break或者加return都是可以的。
2.break與continue:break語句結(jié)束整個(gè)循環(huán);continue結(jié)束當(dāng)前循環(huán),開始下一次循環(huán)。
(三)類與對(duì)象
1.多態(tài):Java中多態(tài)分兩種,重載(Overload)和重寫(Override)。
重載:一個(gè)類中多個(gè)方法具有相同的名字,但方法的參數(shù)不同。
參數(shù)個(gè)數(shù)不同或者參數(shù)類型不同
返回類型與參數(shù)名稱不參與比較
重寫:子類重新(覆蓋)父類的方法。
可以提高訪問權(quán)限,不允許降低訪問權(quán)限。
2.this關(guān)鍵字:this表示當(dāng)前對(duì)象,在構(gòu)造方法中代表該構(gòu)造方法所創(chuàng)建的對(duì)象。
3.包與訪問權(quán)限:
Java.lang包:系統(tǒng)自動(dòng)添加,所以你從來都看不到。(包括System、Math類等)
包訪問權(quán)限:不是三大國民修飾符修飾的成員變量和方法被稱為友好變量和友好方法,在同一包中可以自由訪問。
4.反編譯與文檔生成器:
Javap:將字節(jié)碼反編譯為源碼。
Javadoc:將注釋生成html文檔。
5.生成jar文件:在Eclipse下,選擇File——Export——Java——JARFILE
(四)子類與繼承
1.Object類:所有類都繼承自O(shè)bject類,“ClassA”原型是“CalssAextendsObject”。
2.繼承:
當(dāng)子類與父類不在同一個(gè)包中,子類只繼承父類中protected和public訪問權(quán)限的成員變量與方法
子類繼承的方法只能操作子類繼承和隱藏的成員變量。子類新定義的方法可以操作子類繼承和子類新聲明的成員變量,但無法直接操作子類隱藏的成員變量(要使用super)
子類不繼承父類的構(gòu)造方法,因此子類在其構(gòu)造方法中要使用super調(diào)用父類的構(gòu)造方法。
當(dāng)類中定義了一個(gè)或多個(gè)構(gòu)造方法時(shí),Java不提供默認(rèn)構(gòu)造方法。因此父類中定義多個(gè)構(gòu)造方法時(shí),必須包括一個(gè)不帶參數(shù)的構(gòu)造方法。
(五)面向抽象編程
1.對(duì)象的向上轉(zhuǎn)型:上轉(zhuǎn)型對(duì)象不能操作子類新增的成員變量與方法
父類f=new子類();
2.Open-ClosedPrinciple:系統(tǒng)應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。(怎么辦?面向抽象和接口啊!)
3.面向抽象編程:設(shè)計(jì)類時(shí),不該讓類面向具體的類,而是面向抽象類。
例子:
設(shè)計(jì)抽象類SIM,以便擴(kuò)展具體的運(yùn)營商
publicabstractclassSIM{
protectedStringnumber;
protectedStringtype;
publicabstractvoidsetNumber(Stringnumber);
publicabstractvoidsetType();
publicvoidshow(){
System.out.println("類型:"+type+"號(hào)碼"+number);
}
設(shè)計(jì)手機(jī)類,重要的是在手機(jī)類中添加SIM抽象類,等待子類具體實(shí)現(xiàn)。
publicclassMobliePhone{privateSIMsim;publicvoidsetSIM(SIMsim){this.sim=sim;}publicvoidshowMessage(){sim.show();}
實(shí)現(xiàn)兩種類型的SIM卡,設(shè)為移動(dòng)和聯(lián)通。(Type類型可以在構(gòu)造函數(shù)中實(shí)現(xiàn))
publicclassyidongextendsSIM{@OverridepublicvoidsetNumber(Stringnumber){this.number=number;}@OverridepublicvoidsetType(){this.type="聯(lián)通";}
主函數(shù)如下,若需要擴(kuò)展SIM卡,只要繼承SIM抽象類即可。如此設(shè)計(jì)即符合Java開閉原則。
publicstaticvoidmain(String[]args){MobliePhonemp=newMobliePhone();SIMsim=newyidong();sim.setNumber("{{123456789:0}}");sim.setType();mp.setSIM(sim);mp.showMessage();sim=newliantong();sim.setNumber("{{987654321:0}}");sim.setType();mp.setSIM(sim);mp.showMessage();}
(六)面向接口編程
1.接口:
接口中只有抽象方法和常量,抽象方法一定是public,常量一定是publicstatic,你看不到是因?yàn)橄到y(tǒng)隱藏了。
類實(shí)現(xiàn)接口,若沒有重寫接口中的全部方法,這個(gè)類就是一個(gè)抽象類。
接口要求一些類具有相同名稱的方法,但不強(qiáng)迫這些類具有相同的父類。
接口無法調(diào)用類中非接口方法。
(很關(guān)鍵)如果一個(gè)方法的參數(shù)是接口類型,就可以將實(shí)現(xiàn)該接口的類的實(shí)例的引用傳遞給該接口參數(shù),這個(gè)接口參數(shù)就可以回調(diào)類實(shí)現(xiàn)的接口方法。
2.面向接口編程:核心思想是接口回調(diào),與面向抽象編程有一定的相似性。
例子:
設(shè)計(jì)一個(gè)廣告的接口。
publicinterfaceAdvertisement{
voidshowMess();voidshowCompany();
}
設(shè)計(jì)Televison類用于播放廣告,重要的是設(shè)置接口的參數(shù)回調(diào)。
publicclassTelevison{Advertisementadv;publicvoidsetAdv(Advertisementadv){this.adv=adv;}publicvoidadvertise(){adv.showCompany();adv.showMess();}
實(shí)現(xiàn)具體的廣告類
publicclassnaobaijinimplementsAdvertisement{@OverridepublicvoidshowMess(){System.out.println("收禮只收腦白金");}@OverridepublicvoidshowCompany(){System.out.println("白金集團(tuán)");}
主函數(shù)如下,若需要擴(kuò)展廣告,只要實(shí)現(xiàn)Advertisement接口即可。如此設(shè)計(jì)即符合Java開閉原則。
main(String[]args){Televisontv
以上是小編為大家梳理的Java基礎(chǔ)中的基礎(chǔ),如果還有問題可以關(guān)注“動(dòng)力節(jié)點(diǎn)Java學(xué)院”微信公眾號(hào)留言咨詢,如果你對(duì)編程有興趣,想要成為合格的Java程序員,那么動(dòng)力節(jié)點(diǎn)Java零基礎(chǔ)班現(xiàn)已開啟免費(fèi)試學(xué)階段,對(duì)于想學(xué)Java的同學(xué)無疑是好消息,親自考察教學(xué)質(zhì)量,機(jī)會(huì)就在眼前,針對(duì)不方便前來的同學(xué),可以關(guān)注動(dòng)力節(jié)點(diǎn)Java全套免費(fèi)教學(xué)視頻,趕快學(xué)起來吧.