天天看點

java基礎加強

1.workspace與project。

   workspace工作區間,project一個項目工程。

2.perspective與view。

   persperctive是透視圖。view是視圖。每一個小視窗就是視圖,若幹個不同的小視窗集合在一起就是透視圖。

3.設定整個workspace的javac與java。

   設定整個workspace的javac,window-preferences(喜好)-java-compiler(編譯,題外話“程式員經常用到的javac中的c也是這個單詞,compoler”):compiler compliance level選項

   設定整個workspace的java,window-preferences(喜好)-java-installed jres(安裝過的jres(java runtime environment ,java運作時環境))

4.設定單個工程的javac與java

   設定單個工程的javac,滑鼠右鍵單擊項目工程名-properties(屬性)-java compiler(編譯):compiler compliance level選項

   設定單個工程的java,滑鼠右鍵單擊項目工程名-properties(屬性)-java build path-右邊視圖的上方libraries;或者滑鼠右鍵單擊項目工程名-build path-confugure build path...-右邊視圖的上方libraries

    4-1.高版本的java能否運作低版本的javac編譯的程式?

    能(原因是:開發軟體版本一般都是向下相容,向上不考慮的。)

    4-2.低版本的java能否運作高版本的javac編譯的程式?

    不能(原因是:開發軟體版本一般都是向下相容,向上不考慮的。)

5.快捷鍵的綁定與代碼模闆

   綁定快捷鍵:window-preference(喜好)-general(一般)-輕按兩下keys(快捷鍵)。想知道更詳細的同學請參看視訊: “張孝祥java基礎加強第一部分03小節”

   代碼模闆的制作:window-preference(喜好)-java-editor(編輯)-templates(模闆)-new。想知道更詳細的同學請參看視訊: “張孝祥java基礎加強第一部分06小節”

6.切換工作區間(工作台)的小操作,file-switch(選擇) workspace(工作區間)

7.小知識:許多個java包集合在一起就叫做java庫。

8.普通的import語句可以導入一個類或某個包中的所有類。

9.import static語句導入一個類中的某個靜态方法或所有靜态方法

  關于靜态導入的好處,與壞處。請參照http://macrob.blog.163.com/blog/static/20382818720122152294480/

  import static java.lang.math.max;

  /**

         * 一般正常寫法

         */

//        system.out.println(math.max(3, 6));

//        system.out.println(math.abs(3 - 6));

        /**

         * 不想寫類名,想直接用方法名,就要用到靜态導入,靜态導入是jdk5.0的新特性

        system.out.println(max(3, 6));

        system.out.println(abs(3 - 6));//這方法編譯報錯

10.一個大公司的面試題:說說overload(重載)與override(重寫)的差別

     重載特點:由于重載可以在同一個類中定義功能類似的函數,這給程式員管理類的相似函數提供了極大的友善。例如,在一個定義圓的類中,需要設定圓心和半徑來确定一個圓對象,程式員不需要設定setradius(float r)和setpoint(float x,float y)兩個不同名函數,而隻需要設定一個csetcicle函數名就夠了。在這個簡單的例子中重載并沒有明顯的優勢,可是當一個類中相似功能函數有幾十、上百個的時候,重載的優勢就顯現出來了,這時程式員不需要去記這麼繁多的函數名,可以把更多的精力放在程式本身上。重載的方法隻屬于子類。

    上代碼:

   public void test1(int x,int y){//--------1--------- }

    public void test1(int x,int y,int z){//--------2---------}

    public void test1(int x,string y){//--------3--------- }

    public void test1(string y,int x){//--------4---------  }

    public string test1(int x,int y){//--------5--------- return null; }

    1,2參數數量不同;1,3參數類型不同;3,4參數順序不同;這些情況都算重載。

    1,5傳回值類型不同;這情況不算重載。

例如,假設動物類存在"跑"的方法,從中派生出馬和狗,馬和狗的跑得形态是各不相同的,是以同樣方法需要兩種不同的實作,這就需要"重新編寫"基類中的方法.

上代碼:

public class animal {

    public void run(){

        system.out.println("我是動物我會跑!");

    }

    public static void main(string[] args){

        //這裡有個知識點,就是裡氏代換原則(看不懂的同學,請多多百度或google)

        //執行個體化一個動物類

        animal animal = new animal();

        //執行個體化一個馬類

        animal horse = new horse();

        //執行個體化一個雞類

        animal chicken = new chicken();

        //執行個體化一個鳥類

        animal bird = new bird();

        animal.run();

        horse.run();

        chicken.run();

        bird.run();

}

//一個方法有@override,一個方法沒有@override,在這我不給答案,各位同學自己想想哈

class horse extends animal{

    @override

        system.out.println("我是馬,我繼承了動物類,重寫了run方法,我用四條腿跑!");

class chicken extends animal{

        system.out.println("我是雞,我繼承了動物類,重寫了run方法,我用二條腿跑!");

class bird extends animal{

輸出結果:

我是動物我會跑!

我是馬,我繼承了動物類,重寫了run方法,我用四條腿跑!

我是雞,我繼承了動物類,重寫了run方法,我用二條腿跑!

重寫總結:

1、必須是在繼承裡,

2、方法名、傳回值類型、參數個數和參數類型 都必須相同

3、派生類重寫的方法的通路權限不能低于基類的權限

       3-1.當基類(也就是父類)被重寫的方法作用域為public時,方法可以被重寫

       3-2.當基類(也就是父類)被重寫的方法作用域為protected時,方法可以被重寫

       3-3.當基類(也就是父類)被重寫的方法作用域為private時,方法不可以被重寫

4、派生類抛出的異常應該和基類相等或比基類更小

他們的差別:重載與重寫的差別就在于是否覆寫,重寫一般多發生在不同的類且存在繼承關系之間,而重載多是在一個類裡或者一塊代碼段裡。

11.有一個寫法public void show(int x,int ... args){

其中的int ... args寫法為可變參數寫法,在做東西的時候會有用的,想知道詳細的同學請參看視訊: “張孝祥java基礎加強第一部分09小節”

有什麼好與不好的請大家多給給意見哈!