java第五周學習

來源:互聯網
上載者:User

標籤:class   建立   ati   如何   throw   blog   關係   類對象   ring   

在Java中類與類之間的關係

1.彙總關係 : 兩個類的關聯程度較低,可以單獨存在。

2.組合關係 : 兩個的關聯程度比較高。

    Java中如何來表現這個關係。

        一類A作為屬性存在類B中。

3.依賴關係: 兩個類的關聯程度比較高。

     一個類中定義一個方法,將另外一個類作為方法的參數。

  

4.關聯關係: 它的寫法和整體和部分的關係的的寫法是樣的,表達的含義比一樣。

5.繼承關係

物件導向的三大特徵之一: 繼承

想判斷兩個類之間是否存在繼承關係?

通過判斷兩個類之間是否有所屬關係。 is a 語句來判斷

Java中如何來描述兩個類的繼承關係:

通過extends關鍵之來描述繼承關係。

格式:

       class A extends B{          }

類A叫類B的子類。

       類B稱為類A的父類(超類,基類)

繼承的作用: 減少重複代碼(最佳化代碼的方式)

繼承的使用注意點:

      1.不要為了節省代碼亂繼承。 要想使用繼承必須存在有繼承關係。

      2.java中的繼承屬於單繼承。 一個子類只允許有一個父類。允許多重繼承。

      3.父類中一般是子類的公有的成員(屬性和行為)。子類是允許有自己獨用的行為和屬性。

      4.父類類私人成員是不能繼承的。

      5.構造方法也是不能繼承的。

      6.子類建立對象的時候會預設調用父類的無參構造方法。

      7.父類中最好存在有無參的構造方法。

      8. 如果子類中和父類中同名的成員時,預設是優先使用子類。

      9. 如果子類構造方法中指定了調用父類的構造方法,那麼就不會在調用父類中的無參構造方法。

super關鍵字

super: 用來引用父類的空間

super關鍵字的應用:

      1.在子類中用來直接調用父類中成員變數。

      2.在子類的構造方法中調用父類的構造方法。

super調用構造方法的使用注意點:

  1. 如果super用來調用父類的構造方法,那麼super語句必須是子類的構造方法中的第一個語句。

super關鍵字和this關鍵字的區別:

    1關鍵字的含義比較

        1.this關鍵字所屬的方法的調用者對象。

        2.super表示父類空間的引用

    2使用前提來比較

        1.this關鍵字不需要繼承也可以使用

        2.super關鍵字必須要有繼承

     3調用構造方法比較

        1.this關鍵字是調用當前類的構造方法

        2.super代用父類的構造方法。

 

方法的重寫

作用:擴充父類中的方法。

使用情境:父類中方法滿足不了子類

方法重寫的注意點:

 1.子類中的方法要和父類中的方法同名

 2.子類中的參數列表要和父類的一樣

 3.子類的許可權修飾符要大於等於父類的許可權修飾符。

 4.傳回值類型和父類一樣,或者是父類的子類。

final修飾符

意思:最終的,不可更改的.

作用:1,可以用來修飾變數

     2.可以用來修飾方法

     3.可以用來修飾類

使用注意點:

                  1.一個變數如果被final修飾了必須要初始化

         2.如果一個基礎資料型別 (Elementary Data Type)變數被final,變數就不能修改了

         3.如果用final修飾一個引用資料類型變數,那麼這個變數就不能再引用其他對象

         4.如果final修飾方法,方法就不允許重寫。

         5.如果final修飾一個類,那麼這個類就不允許被繼承。

 

抽象類別

抽象方法的使用情境: 有一個事物存在某種行為,但是沒有具體的實現。可以通過抽象類別來實現

定義抽象方法: abstract關鍵字

抽象方法定義格式: abstract 方法名();

抽象類別的定義格式: abstract class 類名{}

 

abstract的使用注意事項:

       1.abstract修飾的方法是一個抽象的方法,方法不允許有主體。

       2.一個類中如果有抽象方法,那麼這個類一定是一個抽象類別。

       3.一個類如果繼承抽象類別,那麼你就必須要重寫抽象類別中的所有的抽象方法。

       4.一個抽象類別中允許抽象方法和非抽象方法共存。

       5.抽象類別不能建立對象。

       6.抽象類別中是可以定義構造方法。

       7.抽象類別中是可以沒有抽象方法。

abstract修飾方法不能和一下關鍵字連用:  

                abstract不能和private一起修飾方法。

             abstract不能和static一起修飾方法。

             abstract不能和final一起來修飾方法。

抽象類別和普通類的區別:

   1.抽象類別有abstract關鍵字修飾,普通類沒有

   2.抽象類別有抽象方法,普通了沒有。

   3.抽象類別不能建立對象,普通類可以建立對象。

 

介面

使用interface 關鍵字來表示介面。

定義介面的格式:

    

     interface 介面名 {介面的內容}

 

實現介面:

    implements : 表示實現

    class B implements 介面名{

 }

介面的使用注意點:

      1.介面中定義的方法是沒有主體的。介面中的方法預設都是抽象方法。

      2.介面中定義的變數預設都是常量。修飾方式:public static final。

      3.介面不能定義構造方法

      4.介面需要用其他的類來實現。

      5.如果一個普通類實現介面,那麼就必須要實現介面中的所有方法。

      6.如果是一個抽象類別實現介面,類就不一定需要實現介面中的方法。

      7.介面是支援都多實現的。一個類可以實現多個介面。

      8.介面不能建立對象。

     

Java 物件導向的第三大特徵: 多態

多態的變現形式:1.父類的類型指向子類的對象

                               2.介面類型指向介面類型的實現對象

        

1.父類的類型指向子類的對象:

樣本:

Animal a = new Dog();

 

多態的使用注意事項:

       1.要想有多態必須要有繼承。

       2.多態中要有方法的重寫

       3.子類和父類中有同名的非靜態方法,預設是調用子類中的方法。

       4.子類和父類中有同名的變數,預設是調用父類中的。

       5.子類和父類中有同名的靜態方法。預設調用父類中的方法。

 

總結:子類和父類中存在同名成員,預設是調用父類中的,非靜態方法除外。

 

多態的應用:

    1.在方法中用於形參進行傳遞。可以增強代碼的可擴充性

2.在方法中用於傳回值,可以返回多種類型的對象

 (這個時候需要用到資料類型的轉換,資料轉換之前需要判斷某個對象是否屬於某個類型)

在引用資料類型中: 子類向父類轉換叫自動類型轉換。

   樣本  Aniaml a = new Dog();

   在引用資料類型中: 父類向子類進行轉換叫強制類型轉換。

  樣本: a instanceof Mouse

       Mouse m = (Mouse)a

 

 

2.介面類型的變數指向介面實作類別的對象

樣本:

介面 a = new 實作類別();

a 就可以實現介面裡面的方法

 

內部類

定義: 在一個類的內部存在有另外一個類。

內部類的class檔案的命名: 外部類$內部類

內部類的使用情境:

         一個類A中要使用到另外一個類B,類B中又要使用到類A,這個時候就需要使用到內部類。

在一個類內部類分為兩種:

 1 成員內部類

 2.局部內部類

 

成員內部類

         定義在內裡面方法外面的類叫成員內部類。

訪問內部類的方式:

             方式一:

                在外部類中提供一個方法來初始化內部內對象,在方法中對對象做操作。

 

             方式二:  只有成員內部類可以使用。

                在其他類中間接的建立內部類對象直接使用。

                格式: 外部類.內部類  對象 = new 外部類().new 內部類();

內部類的使用注意點:

           1.外部類中定義的成員可以在內部類中直接存取到

           2.如果內部類中的成員和外部類的成員同名,就近原則,調用內部類中的。

           3..如果內部類中的成員和外部類的成員同名,可以通過 外部類名.this.屬性名稱 來擷取到外部類的屬性。

           4.如果static修飾內部類 ,內部類中訪問的成員需要使靜態。

 

局部內部類

         定義在方法中的類。

訪問局部內部類的方式:在外部類中提供一個方法來初始化內部內對象,在方法中對對象做操作

局部內部類的使用注意點:

  1. 內部類中想訪問外部類中 的局部變數,這個局部變數必須用final來修飾

 

匿名內部類

匿名內部類:就是沒有名字的內部類。

 

匿名內部類的作用: 簡化代碼

 

匿名的內部類需要通過 繼承或者介面來實現

 

異常

程式和代碼的不正常情況,叫異常

 

異常類:用一個類來描述所有的異常情況叫異常類

 

異常體系:所有的異常類組合起來稱為異常體系

 

 Object : 所以異常和錯誤的超類

 

 Throwable: 所有異常的超類

 

Error :錯誤類

 

Execption:異常類

 

繼承圖:

Throwable:類中最常見的三種方法

1         toString() 返回此 throwable 的簡短描述 :描述的是類的完整類名+傳入的異常資訊。

2         getMessage()  擷取傳入的異常資訊

 

3         printStackTrace()列印異常的棧資訊

 

 

 

Error :錯誤 : 指的是jvm或者硬體的原因導致的錯誤 .無需人工處理

 

Execption:異常 : 指的是jvm虛擬機器產生的異常

 

         判斷列印的是異常還是資訊:

如果列印資訊的後面是以error結尾的 ,列印出來的就死活一個錯誤資訊。

               如果列印的資訊的後面是以Execption結尾的,列印出來的是異常資訊。

 

處理異常的方式有兩種:

         1.捕獲處理異常:

            

             捕獲處理異常的格式:

 

               try{//可能出現異常的代碼}catch(接收異常的變數){

              

                 //處理異常的操作

               }

 

捕獲異常的使用注意點:

             1.如果try中的代碼出現了異常,出現異常之後的代碼就不會執行了。

             2.一個try後面可以處理多個異常。

             3.捕獲異常的時候可以直接捕獲一個最大的異常Execption

             4.捕獲的異常需要按照由小到大的順序排列。

java第五周學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.