1. 程式人生 > >java關鍵字,修飾符

java關鍵字,修飾符

this關鍵字:

代表當前物件的引用,this所在函式所屬物件的引用。

可以用於在建構函式中呼叫其他建構函式。(注意:只能定義在建構函式的第一行,因為初始化動作要先執行。)

super關鍵字:

 

  • 代表父類儲存空間的標識。(可以理解為父類的引用,通過這個東西可以訪問父類的成員。)
  • 子類的構造過程中必須呼叫其父類的構造方法。
  • 如果子類的構造方法中沒有顯示呼叫父類的構造方法,則系統預設呼叫父親類的無參構造方法。
  • 如果子類構造方法中既沒有顯示呼叫父類的構造方法,而父類又沒有無參的構造方法,則會編譯錯誤。
  • 當然也可以自己使用super關鍵字呼叫父類的構造方法(只能寫在第一行,和this一樣)。

static關鍵字:

 

  • static是一個修飾符,用於修飾成員,修飾的變是為靜態變數,或者類變數,
  • static修飾的成員被所有的的物件所共享。
  • static優先於物件存在,因為static修飾的成員隨著類的載入就已經存在了。
  • static修飾的成員多了一種呼叫方式,可以直接被類名所呼叫。
  • static修飾的資料是共享資料,物件中的儲存的是特有資料。
  • 1.靜態:被static修飾的類的屬性或者方法,記憶體空間不會被例項化影響(不適用於區域性變數),一旦被改變,其他地方讀到的值,都是改變後的值,不建議使用例項名來訪問靜態的屬性和方法,直接使用類名訪問。
  • 2.儘量減少使用靜態屬性和方法,特別是在多執行緒執行環境,堅決不允許。
  • 3.初始化塊,無任何修飾{};每次例項化的時候就會產生。

final

 

  • 1.       final修飾的方法不可過載,過載。
  • 2.       final修的變數的值不可改變,也就是常量。
  • 3.       final修飾的類不可以被繼承。
  • 4. final修飾區域性變數問題
    • 修飾基本型別:基本型別的值不能發生改變。
    • 修飾引用型別:引用型別的地址不能發生改變,但是,該物件的堆記憶體的成員變數值是可以改變的。
  • final修飾的變數的初始化時:
    •  被final修飾的變數只能賦值一次。
    • 在構造方法完畢前。(非靜態的常量)

成員變數和靜態變數的區別?

 

1.兩個變數的生命週期不同。

    • 成員變數隨著物件的建立而存在,隨著物件的被回收而釋放。
    • 靜態變數隨著類的載入而存在,隨著類的消失而消失。(生命週期長)

2.呼叫方式不同。

    • 成員變數只能被物件呼叫。
    • 靜態變數可以被物件呼叫,還可以被類名呼叫。

3。別名不同:

    • 成員變數也稱為例項變數。
    • 靜態變數稱為類變數,

4.資料位置不同:

    • 成員變數資料儲存在堆記憶體物件中,所以也叫做物件的特有資料。
    • 靜態變數資料儲存在方法區(共享資料區)的靜態區,所以也叫物件共享資料。

靜態使用注意事項:

    • 靜態方法只能訪問靜態成員。
    • 靜態方法中不可以使用this或者super關鍵字。
    • 主函式是靜態的。

Java 修飾符

修飾符:

    許可權修飾符:public ,private,default,protected。

    狀態修飾符:static , final。

    抽象修飾符:abstract。

Java語言提供了很多修飾符,主要分為以下兩類:

訪問控制修飾符

Java中,可以使用訪問控制符來保護對類、變數、方法和構造方法的訪問。Java支援4種不同的訪問許可權。

·         預設的,也稱為 default,在同一包內可見,不使用任何修飾符。

·         私有的,以 private 修飾符指定,在同一類內可見。

·         共有的,以 public 修飾符指定,對所有類可見。(誰都可以訪問)

·         受保護的,以 protected 修飾符指定,對同一包內的類和所有子類可見。(受包保護)

 

被Static修飾的程式碼塊裡面的變數,是共用的,可以通過外界改變他們。

非訪問修飾符

為了實現一些其他的功能,Java 也提供了許多非訪問修飾符。

·         static 修飾符,用來建立類方法和類變數。

·         Final 修飾符,用來修飾類、方法和變數,final 修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變數為常量,是不可修改的。

·         Abstract 修飾符,用來建立抽象類和抽象方法。

·         Synchronized 和 volatile 修飾符,主要用於執行緒的程式設計。

類及其組成可以用的修飾符 

類: 預設,public,final,abstract 我們自己定義:public居多 

成員變數: 四種許可權修飾符均可,final,static 我們自己定義:private居多 

構造方法: 四種許可權修飾符均可,其他不可 我們自己定義:public 居多 

成員方法: 四種許可權修飾符均可,fianl,static,abstract 我們自己定義:public居多