Java語言中的static類和類與類之間的總結

1、static類數組

  一、static類的定義學習

    static被稱爲靜態,能夠用來修飾類的屬性或方法。spa

    若是類的某個屬性,無論建立多少個對象,屬性的存儲空間只有惟一的一個,那麼這個屬性就應該用static修飾,被static修飾的屬性稱爲靜態屬性。日誌

    static屬性可使用對象調用,也能夠直接用類名調用。對象

    靜態屬性的類的因此對象共享的,即無論建立了多少個對象,靜態屬性在內存中只有一個。blog

    public class Employee{繼承

      private String name;--------------------------非靜態類接口

      private double salary;------------------------非靜態類生命週期

      private static int count;-----------------------靜態類內存

}

  二、static方法定義

     若是某個方法不須要與某個特定的對象綁定,那麼該方法可使用static修飾,被static修飾的方法稱爲靜態類方法。

    訪問權限   static修飾符   返回值類型  方法名

    public    static    void   sellticket(){

      System.out.println("全部火車票都是12306賣的!")

}

  三、static方法可使用對象調用,也能夠直接用類名調用建議用類名直接調用

  四、什麼時候使用static方法

     若是某個方法與實例無關,也就是說無論那個對象調用這個方法,都執行相同的操做,與對象沒有關係,則應該定義爲靜態方法。不須要建立對象後在使用該方法。

     如:API中的Math,都是靜態方法,由於進行數學運算,與Math對象自己無關,使用類直接調用便可。

     任何方法均可以直接調用靜態方法;

     靜態方法不能直接調用靜態方法,須要建立對象,用對象名調用非靜態方法

  五、static塊

     static塊和static的屬性以及方法的性質是相同的,用static修飾的代碼塊表示靜態代碼塊,當Java虛擬機加載類時,就會執行該代碼塊。

     區別在於語法不一樣。

     static塊語法:直接在代碼塊前加上關鍵字static即成爲靜態塊。

     static用途

    1)、靜態塊只有在類加載的時候被執行一次,無論建立多少個對象,都不會再執行。

    2)、若是一個類加載的時候,總要預先作一些事情,則能夠放在靜態塊中,例如,讀取一個屬性文件,進行一些常規配置,寫一些日誌等。

    3)、一個類中能夠有多個靜態塊,按照順序執行。

2、final  

  一、final用於定義聲明屬性,方法和類

     屬性:定義就必須直接賦值或者在構造方法中進行賦值,而且後期都不能修改。

     方法:定義必須有實現代碼,而且子類裏不可被繼承。

     類:不能被定義爲抽象類或是接口,不可被繼承。

  二、final修飾屬性

     當final修飾屬性時,基本數據類型的屬性將成爲常量,不能被修改

     一些數學定理中的常量常用final修飾

  三、final屬性的賦值

     在聲明時同時賦值,每每與static一塊兒使用

     在聲明時不賦值,必須在構造方法中逐一賦值

     總的原則:保證建立每個對象的時候,final屬性得知是肯定的

例:

        

  四、final修飾參數

     在方法參數面前加final關鍵字,爲了防止數據在方法體中被修改。

 

3、類與類的關係

  一、關聯關係

     1)、關聯關係定義

     對象和對象之間的連接。在Java中,關聯關係的代碼表現形式爲一類作爲另外一類的屬性類型存在。

     即「有」的關係:"has-a".

     2)、關聯關係的方向

    單向關聯:A類關聯B類。

    雙向關聯:A類關聯B類,B類關聯A類;例:

  

      3)、關聯關係的多重性

    一對一關聯:一個學生只能在一個班級學習。

    

     一對多關聯:一個學生,能夠參加多個班級學習

  解決方案:集合與數組

     

  二、依賴關係

     1)、依賴關係定義(use-a)

    指一個類A使用到另外一個類B

     2)、依賴關係的特性

    這種關係是具備偶然性的、臨時性的、很是弱的,可是類B的變化會影響到類A。

     3)、依賴具體表現

    在代碼層面,依賴關係表現爲類B做爲參數被類A在某個method

    方法中使用

    

  三、關聯與依賴的區別

    關聯是「HAS」關係,依賴是「USE」關係

       A類關聯B類,指的是B類對象做爲A類的屬性存在,稱爲「has」關係。

       A類依賴B類,指的是B的對象做爲A類的方法參數存在,稱爲「use」關係。

    生命週期不一樣

       若是A類關聯B類,那麼建立A類的對象時實例化B類的對象,直到A類對象被銷燬,所關聯的B類對象也被銷燬。即只要A類對象存在,B類對象就存在。

       若是A類依賴B類,那麼只有當A類對象調用到相應方法時,B類對象才被臨時建立,方法執行結束,B類對象即被回收,A類和B類之間的依賴關係是一種瞬時的關係。

相關文章
相關標籤/搜索