Java基礎總結(一)

1、開始的嘮叨html

有朋友開始接觸Java,問我一些基礎的問題,忽然發現不知該如何回答,十分尷尬。痛定思痛,便回爐重造,將java基礎的知識從新梳理了一遍。java

如下是我看書時或摘要、或總結的語言,徹底是Java中基礎的基礎。編程

2、學習筆記數組

(一)基本數據類型ide

1.標識符區分大小寫:hello與Hello是不一樣的標識符。函數

2.基本數據類型的精度由低到高依次爲:byte short char int long float double學習

3.格式控制符號:this

%d int類型
%c char類型
%f 浮點類型
%s 字符類型

 

 

 

 

例如:spa

System.out.println("%d,%f",1,1.23)

4.數組的兩種建立方式:設計

Object[] arry=new Object[n]; Object[] arry=new Object[]{x,y,z,..};

(二)表達式

 1.switch case語句:case下加break或者加return都是能夠的。

2.break與continue:break語句結束整個循環;continue結束當前循環,開始下一次循環。

三)類與對象

1.多態:Java中多態分兩種,重載(Overload)和重寫(Override)。

重載:一個類中多個方法具備相同的名字,但方法的參數不一樣。

  • 參數個數不一樣或者參數類型不一樣
  • 返回類型與參數名稱不參與比較

重寫:子類從新(覆蓋)父類的方法。

      • 能夠提升訪問權限,不容許下降訪問權限。

2.this關鍵字:this表示當前對象,在構造方法中表明該構造方法所建立的對象。

3.包與訪問權限:

  • java.lang包:系統自動添加,因此你歷來都看不到。(包括System、Math類等)
  • 包訪問權限:不是三大國民修飾符修飾的成員變量和方法被稱爲友好變量友好方法,在同一包中能夠自由訪問。

4.反編譯與文檔生成器:

  • javap:將字節碼反編譯爲源碼。
  • javadoc:將註釋生成html文檔。

5.生成jar文件:在Eclipse下,選擇File——Export——java——JAR FILE

(四)子類與繼承

1.Object類:全部類都繼承自Object類,「Class A」原型是「Calss A extends Object」。

2.繼承:

  • 當子類與父類不在同一個包中,子類只繼承父類中protected和public訪問權限的成員變量與方法
  • 子類繼承的方法只能操做子類繼承和隱藏的成員變量。子類新定義的方法能夠操做子類繼承和子類新聲明的成員變量,但沒法直接操做子類隱藏的成員變量(要使用super)
  • 子類不繼承父類的構造方法,所以子類在其構造方法中要使用super調用父類的構造方法。
  • 當類中定義了一個或多個構造方法時,java不提供默認構造方法。所以父類中定義多個構造方法時,必須包括一個不帶參數的構造方法。

(五)面向抽象編程

1.對象的向上轉型:上轉型對象不能操做子類新增的成員變量與方法

父類 f=new 子類();

2.Open-Closed Principle:系統應當對擴展開放,對修改關閉。(怎麼辦?面向抽象和接口啊!)

3.面向抽象編程:設計類時,不應讓類面向具體的類,而是面向抽象類。

例子:

設計抽象類SIM,以便擴展具體的運營商。

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+"號碼"+number); }

設計手機類,重點是在手機類中添加SIM抽象類,等待子類具體實現。

public class MobliePhone { private SIM sim; public void setSIM(SIM sim){ this.sim=sim; } public void showMessage(){ sim.show(); }

實現兩種類型的SIM卡,設爲移動和聯通。(Type類型能夠在構造函數中實現)

public class yidong extends SIM{ @Override public void setNumber(String number) { this.number=number; } @Override public void setType() { this.type="聯通"; }

主函數以下,若須要擴展SIM卡,只要繼承SIM抽象類便可。如此設計即符合Java開閉原則。

public static void 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,你看不到是由於系統隱藏了。
  • 類實現接口,若沒有重寫接口中的所有方法,這個類就是一個抽象類。
  • 接口要求一些類具備相同名稱的方法,但不強迫這些類具備相同的父類。
  • 接口沒法調用類中非接口方法。
  • (很關鍵)若是一個方法的參數是接口類型,就能夠將實現該接口的類的實例的引用傳遞給該接口參數,這個接口參數就能夠回調類實現的接口方法。

2.面向接口編程:核心思想是接口回調,與面向抽象編程有必定的類似性。

例子:

設計一個廣告的接口。

public interface Advertisement { void showMess(); void showCompany(); }

設計Televison類用於播放廣告,重點是設置接口的參數回調。

public class Televison { Advertisement adv; public void setAdv(Advertisement adv){ this.adv=adv; } public void advertise(){ adv.showCompany(); adv.showMess(); }

實現具體的廣告類

public class naobaijin implements Advertisement{ @Override public void showMess() { System.out.println("收禮只收腦白金"); } @Override public void showCompany() { System.out.println("白金集團"); }

主函數以下,若須要擴展廣告,只要實現Advertisement接口便可。如此設計即符合Java開閉原則。

public static void main(String[] args) { Televison tv=new Televison(); tv.setAdv(new naobaijin()); tv.advertise(); tv.setAdv(new sufei()); tv.advertise(); }

3、結束的嘮叨

遺忘是學習的一部分,就代碼而言,幾個星期不接觸就會感到生疏。

以上整理的內容都是我二刷JAVA時以爲重要的以及以前遺忘的,再通過選擇後發佈。不成體系,僅供參考。

相關文章
相關標籤/搜索