當前位置:
首頁 > 知識 > 你不知道的java基礎再 回顧

你不知道的java基礎再 回顧


以下是我看書時或摘要、或總結的語言,完全是Java中基礎的基礎。因為是有朋友開始接觸Java,問我一些基礎的問題,突然發現不知該如何回答,十分尷尬。痛定思痛,便回爐重造,將java基礎的知識重新梳理了一遍。



你不知道的java基礎再 回顧



(一)基本數據類型


1.標識符區分大小寫:hello與Hello是不同的標識符。

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


3.格式控制符號:


例如:


4.數組的兩種創建方式:


Object[] arry=new Object[n]; Object[] arry=new Object[];


(二)表達式


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(){


}


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


public class MobliePhone 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("{}");


sim.setType();

mp.setSIM(sim);


mp.showMessage();


sim=new liantong();


sim.setNumber("{}");


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() {


}


@Override public void showCompany() {


}


主函數如下,若需要擴展廣告,只要實現Advertisement介面即可。如此設計即符合Java開閉原則。


main(String[] args) {


Televison tv


三、結束的嘮叨


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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java學習吧 的精彩文章:

MyEclipse內存不足問題
的Java實現的打地鼠遊戲
轉Java零基礎如何學好Java語言從 新手快速入門
JSP頁面的五種跳轉方法
SpringMVC從入門到精通第七章

TAG:java學習吧 |

您可能感興趣

Johnson求求你們,這種基礎德語錯誤真的不要再犯了
Python 3基礎語法知識點都在這裡了,如果還不能入門就不能怪我了
Converse Japan這次帶來的基礎款,一點都不簡單!
Virgil Abloh也得服?這波Nike重組拼接基礎款給我來一打!
深度學習這麼火,快看如何使用TensorFlow基礎函數構建信號回測!
時尚girl就愛百搭基礎款!你是時尚girl嗎?
學習python你需要熟知的基礎知識
不僅僅是好看而已——和德國藝術家Maria Nevermann一起學金工基礎
做好banner,我總結了這5類基礎知識!!!
粉絲向動畫就得真粉看!Fate HF要如何的劇情基礎才能看?
粉絲向動畫就得真粉看!《Fate HF》需要如何的劇情基礎才能看?
學習Python需要哪些基礎知識?
自學Python需要怎樣的基礎和準備
未來的基礎硬體 帶你了解一個不同的ams
打好 Redis 的基礎,你可能需要這些常用命令
他說用書中遊戲學Python基礎,再看這兩本書,可把握Pyth3的未來
零基礎也想靠跳舞燃脂?Follow this,搖就完事兒了!
專訪 TE 副總裁 Alan Amici:紮實的數據傳輸基礎,可讓理想的自動駕駛更早到來
python基礎知識
Python基礎了解