Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言掠抬。Java 技術(shù)具有卓越的通用性氮块、高效性绍载、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC滔蝉、數(shù)據(jù)中心击儡、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)锰提、移動(dòng)電話和互聯(lián)網(wǎng)曙痘,同時(shí)擁有全球最大的開發(fā)者專業(yè)社群芳悲。
給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
以下是我看書時(shí)或摘要、或總結(jié)的語言边坤,完全是Java中基礎(chǔ)的基礎(chǔ)名扛。因?yàn)槭怯信笥验_始接觸Java,問我一些基礎(chǔ)的問題茧痒,突然發(fā)現(xiàn)不知該如何回答肮韧,十分尷尬。痛定思痛旺订,便回爐重造弄企,將java基礎(chǔ)的知識(shí)重新梳理了一遍。
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零区拳,五五四拘领,六零七 】,無論你是大牛還是小白樱调,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)约素!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享笆凌!
(一)基本數(shù)據(jù)類型
1.標(biāo)識(shí)符區(qū)分大小寫:hello與Hello是不同的標(biāo)識(shí)符圣猎。
2.基本數(shù)據(jù)類型的精度由低到高依次為:byte short char int long float double
3.格式控制符號(hào):
%dint類型
%cchar類型
%f浮點(diǎn)類型
%s字符類型
例如:
System.out.println("%d,%f",1,1.23)
4.數(shù)組的兩種創(chuàng)建方式:
Object[] arry=new Object[n];
(二)表達(dá)式
1.switch case語句: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——JAR FILE
(四)子類與繼承
1.Object類:所有類都繼承自O(shè)bject類矾睦,“Class A”原型是“Calss A extends Object”。
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-Closed Principle:系統(tǒng)應(yīng)當(dāng)對(duì)擴(kuò)展開放更啄,對(duì)修改關(guān)閉稚疹。(怎么辦?面向抽象和接口凹牢瘛F堆摺)
3.面向抽象編程:設(shè)計(jì)類時(shí),不該讓類面向具體的類待牵,而是面向抽象類。
例子:
設(shè)計(jì)抽象類SIM喇勋,以便擴(kuò)展具體的運(yùn)營商
public abstract class SIM {
protected String number;
protected String type;
public abstract void setNumber(String number);
public abstract void setType();
public void show(){
System.out.println("類型:"+type+"號(hào)碼"+number);
}
設(shè)計(jì)手機(jī)類缨该,重點(diǎn)是在手機(jī)類中添加SIM抽象類,等待子類具體實(shí)現(xiàn)川背。
publicclass MobliePhone {private SIM sim;publicvoid setSIM(SIM sim){ this.sim=sim;
}publicvoid showMessage(){
sim.show();
}
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零贰拿,五五四,六零七 】熄云,無論你是大牛還是小白膨更,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具缴允,很多干貨和技術(shù)資料分享荚守!
實(shí)現(xiàn)兩種類型的SIM卡,設(shè)為移動(dòng)和聯(lián)通练般。(Type類型可以在構(gòu)造函數(shù)中實(shí)現(xiàn))
publicclass yidong extends SIM{
@Override publicvoid setNumber(String number) { this.number=number;
}
@Override publicvoid setType() { this.type="聯(lián)通";
}
主函數(shù)如下矗漾,若需要擴(kuò)展SIM卡,只要繼承SIM抽象類即可薄料。如此設(shè)計(jì)即符合Java開閉原則敞贡。
publicstaticvoid main(String[] args) {
MobliePhone mp=new MobliePhone();
SIM sim=new yidong();
sim.setNumber("123456789");
sim.setType();
mp.setSIM(sim);
mp.showMessage();
sim=new liantong();
sim.setNumber("987654321");
sim.setType();
mp.setSIM(sim);
mp.showMessage();
}
(六)面向接口編程
1.接口:
接口中只有抽象方法和常量,抽象方法一定是public摄职,常量一定是public static誊役,你看不到是因?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è)廣告的接口板驳。
public interface Advertisement {
設(shè)計(jì)Televison類用于播放廣告又跛,重點(diǎn)是設(shè)置接口的參數(shù)回調(diào)。
publicclass Televison {
Advertisement adv;publicvoid setAdv(Advertisement adv){ this.adv=adv;
}publicvoid advertise(){
adv.showCompany();
adv.showMess();
}
實(shí)現(xiàn)具體的廣告類
publicclass naobaijin implements Advertisement{
@Override publicvoid showMess() {
System.out.println("收禮只收腦白金");
}
@Override publicvoid showCompany() {
System.out.println("白金集團(tuán)");
}
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零若治,五五四慨蓝,六零七 】,無論你是大牛還是小白端幼,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)礼烈!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享婆跑!
主函數(shù)如下此熬,若需要擴(kuò)展廣告,只要實(shí)現(xiàn)Advertisement接口即可滑进。如此設(shè)計(jì)即符合Java開閉原則犀忱。
main(String[] args) {
Televison tv
三、結(jié)束的嘮叨
遺忘是學(xué)習(xí)的一部分扶关,就代碼而言阴汇,幾個(gè)星期不接觸就會(huì)感到生疏。