Java基礎筆記總結

一、static關鍵字

1.Static是在類中最先被(JVM機制)加載
2.作用:
(1)創建獨立於具體對象的域變量或方法
(2)可以不創建對象,也能直接使用屬性和調用方法定義的順序
(3)形成靜態代碼塊用來優化程序性能
3.加載順序
(1)類在初次加載時,會按照static塊來執行,且只會執行一次
4.Static獨特的作用,被static修飾的變量或者方法獨立於該類的任何對象,被類的實例對象共享,內存中只有一個副本
5.注
(1)在類的第一次使用時加載並初始化,後面科根據需要賦值
(2)Static不允許用來修飾局部變量
6.與普通變量的區別
(1)Static:static成員變量的初始化順序按照定義的順序進行初始化
(2)非static是對象所擁有的的,子創建對象的時候被初始化,存在多個副本,各個對象擁有的副本各不影響
7.靜態內部類
(1)不能使用任何外圍類的非static成員變量和方法
(2)當前類加載的時候,靜態內部類沒有被加載進內存。只有調用靜態內部類才能出發靜態內部類纔會加載和初始化,請JVM機制會確保只能實例化一次,JVM提供了線程安全的支持
8.靜態導包—import static
(1)可導入某個類中的指定靜態資源
(2)可不使用類名調用類中的靜態變量就直接使用(但是開發不建議這樣做)
9.Static與final


二、抽象類和接口

1、抽象類(abstract)

  1. 抽象類和類一樣擁有構造方法、static靜態修飾成分
    1、抽象類可無抽象方法
    2、抽象類的構造方法不能直接用來創建對象實例
    3、抽象類不能用final、private修飾,訪問類型爲public、protected
    4、外部抽象類不能用static修飾,但是內部抽象類可以使用static聲明,如下
    abstract class A{ static abstract class B{ public abstract void decise(); } }
  2. 抽象方法
    1、抽象方法沒有方法體
    2、抽象方法必須用abstract關鍵字修飾
    3、抽象方法必須爲public和protected,缺省默認public
    4、抽象方法的類一定是抽象類,普通方法也可在抽象類
  3. 意義
    1、抽象類定義就是爲了繼承
    2、抽象類的構造方法不能直接被實例化,要創建對象涉及向上轉型,作用是爲了被子類調用
    3、普通類繼承抽象類一定要實現抽象父類的抽象方法,如果沒有實現,需要子類也定義爲抽象類

2、接口(interface)

  1. 基本概念
    1、接口中的方法默認爲public abstract類型

    1. 1但是也有特例,如下
    2. interface A{default void b(){System.out.println("default方法");}}

    2、接口中的成員變量類型默認且只能爲public static final(可略)變量類型
    3、接口中不能有構造方法
    4、接口中的方法被隱式的指定且只能爲public abstract方法
    5、接口可以實現多繼承,用逗號隔開即可

3、抽象類和接口的區別

  1. 設計思想
    1、抽象類添加新的發,可以直接在抽象類中添加具體的實現(類似普通方法),子類可不變更
    2、接口進行了變更,所有實現這個接口的類都需要相應的改動

  2. 設計角度
    1、抽象類是對整個類進行抽象,包括屬性、行爲
    2、接口是對行爲的抽象,是對局部行爲的抽象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章