java基礎知識大全
- java語言
- 關注:9.97K次
Java語言作為靜態面向物件程式語言的代表,極好地實現了面向物件理論,允許程式設計師以優雅的思維方式進行復雜的程式設計。下面小編整理了java基礎知識大全,希望對大家有幫助!
基本資料型別
1、識別符號區分大小寫:hello與Hello是不同的識別符號。
2、基本資料型別的精度由低到高依次為:byteshortcharintlongfloatdouble
3、格式控制符號:
%d int型別
%c char型別
%f 浮點型別
%s 字元型別
例如:
tln("%d,%f",1,1.23)
4、陣列的兩種建立方式:
Object[]arry=newObject[n];
Object[]arry=newObject[]{x,y,z,..};
表示式
1、switchcase語句:case下加break或者加return都是可以的。
2、break與continue:break語句結束整個迴圈;continue結束當前迴圈,開始下一次迴圈。
類與物件
1、多型:Java中多型分兩種,過載(Overload)和重寫(Override)。
過載:一個類中多個方法具有相同的名字,但方法的引數不同。
引數個數不同或者引數型別不同
返回型別與引數名稱不參與比較
重寫:子類重新(覆蓋)父類的方法。
可以提高訪問許可權,不允許降低訪問許可權。
2、this關鍵字:this表示當前物件,在構造方法中代表該構造方法所建立的物件。
3、包與訪問許可權:
包:系統自動新增,所以你從來都看不到。(包括System、Math類等)
包訪問許可權:不是三大國民修飾符修飾的成員變數和方法被稱為友好變數和友好方法,在同一包中可以自由訪問。
4、反編譯與文件生成器:
javap:將位元組碼反編譯為原始碼。
javadoc:將註釋生成html文件。
5、生成jar檔案:在Eclipse下,選擇File——Export——java——JARFILE
子類與繼承
1、Object類:所有類都繼承自Object類,“ClassA”原型是“CalssAextendsObject”。
2、繼承:
當子類與父類不在同一個包中,子類只繼承父類中protected和public訪問許可權的成員變數與方法
子類繼承的方法只能操作子類繼承和隱藏的成員變數。子類新定義的方法可以操作子類繼承和子類新宣告的成員變數,但無法直接操作子類隱藏的成員變數(要使用super)
子類不繼承父類的構造方法,因此子類在其構造方法中要使用super呼叫父類的構造方法。
當類中定義了一個或多個構造方法時,java不提供預設構造方法。因此父類中定義多個構造方法時,必須包括一個不帶引數的構造方法。
面向抽象程式設計
1、物件的向上轉型:上轉型物件不能操作子類新增的成員變數與方法
父類f=new子類;
2、Open-ClosedPrinciple:系統應當對擴充套件開放,對修改關閉。(怎麼辦?面向抽象和介面啊!)
3、面向抽象程式設計:設計類時,不該讓類面向具體的類,而是面向抽象類。
例子:
設計抽象類SIM,以便擴充套件具體的運營商
publicabstractclassSIM{
protectedStringnumber;
protectedStringtype;
publicabstractvoidsetNumber(Stringnumber);
publicabstractvoidsetType;
publicvoidshow{
tln("型別:"+type+"號碼"+number);
}
設計手機類,重點是在手機類中新增SIM抽象類,等待子類具體實現。
publicclassMobliePhone{privateSIMsim;publicvoidsetSIM(SIMsim){=sim;
}publicvoidshowMessage{
;
}
實現兩種型別的SIM卡,設為移動和聯通。(Type型別可以在建構函式中實現)
publicclassyidongextendsSIM{
@OverridepublicvoidsetNumber(Stringnumber){er=number;
}
@OverridepublicvoidsetType{="聯通";
}
主函式如下,若需要擴充套件SIM卡,只要繼承SIM抽象類即可。如此設計即符合Java開閉原則。
publicstaticvoidmain(String[]args){
MobliePhonemp=newMobliePhone;
SIMsim=newyidong;
umber("{{123456789:0}}");
ype;
IM(sim);
Message;
sim=newliantong;
umber("{{987654321:0}}");
ype;
IM(sim);
Message;
}
面向介面程式設計
1、介面:
介面中只有抽象方法和常量,抽象方法一定是public,常量一定是publicstatic,你看不到是因為系統隱藏了。
類實現介面,若沒有重寫介面中的全部方法,這個類就是一個抽象類。
介面要求一些類具有相同名稱的方法,但不強迫這些類具有相同的`父類。
介面無法呼叫類中非介面方法。
(很關鍵)如果一個方法的引數是介面型別,就可以將實現該介面的類的例項的引用傳遞給該介面引數,這個介面引數就可以回撥類實現的介面方法。
2、面向介面程式設計:核心思想是介面回撥,與面向抽象程式設計有一定的相似性。
例子:
設計一個廣告的介面。
publicinterfaceAdvertisement{
voidshowMess;voidshowCompany;
}
設計Televison類用於播放廣告,重點是設定介面的引數回撥。
publicclassTelevison{
Advertisementadv;publicvoidsetAdv(Advertisementadv){=adv;
}publicvoidadvertise{
Company;
Mess;
}
實現具體的廣告類
publicclassnaobaijinimplementsAdvertisement{
@OverridepublicvoidshowMess{
tln("收禮只收腦白金");
}
@OverridepublicvoidshowCompany{
tln("白金集團");
}
主函式如下,若需要擴充套件廣告,只要實現Advertisement介面即可。如此設計即符合Java開閉原則。
main(String[]args){
Televisontv
- 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-tw/jsj/java/2xjqj1.html