this關鍵字 static關鍵字

2021-07-25 17:30:40 字數 1818 閱讀 5733

1.當成員變數和區域性變數重名,可以用關鍵字this來區分

this:代表物件,代表那個物件呢?當前物件

this就是所在函式所屬物件的引用

簡單說:那個物件呼叫了this所在的函式,this就代表哪個物件

this也可以用於在建構函式中呼叫其他建構函式

注意:只能定義在建構函式的第一行,因為初始化動作要先執行

static 的特點:

1.static是乙個修飾符,用於修飾成員

2.static修飾的成員被所有的物件所共享

3.static優先於物件存在,因為static的成員隨著類的載入就已經存在了

4.static修飾的成員多了一種呼叫方式,可以直接被類名所呼叫。格式為:類名.成員

5.static修飾的資料是共享資料,物件中儲存的是特有資料

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

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

成員變數隨著物件的建立而存在,隨著物件的被**而釋放

靜態變數隨著類的載入而存在,隨著類的消失而消失

2.   呼叫方式不同

成員變數只能被物件呼叫

靜態變數可以被物件呼叫,還可以被類名呼叫

3.  別名不同

成員變數也成為例項變數

靜態變數成為類變數

4. 資料儲存位置不同

成員變數資料儲存在堆記憶體的物件中,所以也叫物件的特有資料

靜態變數資料儲存在方法區(共享資料區)的靜態區,所以也叫物件的共享資料

靜態使用的注意事項:

1. 靜態方法只能訪問靜態成員(非靜態既可以訪問靜態,又可以訪問非靜態)

2.靜態方法中不可以使用super或者this關鍵字

3.主函式是靜態的

主函式特殊之處:

1.格式是固定的

2.被jvm所識別和呼叫

public :因為許可權必須是最大的

static:不需要物件的,直接用主函式所屬類名呼叫即可

void : 主函式沒有具體的返回值

main : 函式名,不是關鍵字,只是乙個jvm識別的固定的名字

string args :這是主函式的引數列表,是乙個陣列型別的引數,而且元素都是字串型別

靜態什麼時候用呢?

1.靜態變數

當分析物件中所具備的成員變數的值都是相同的,這時這個成員就可以被靜態修飾

只要資料在物件中都是不同的,就是物件的特有資料,必須儲存在物件中,是非靜態的

如果是相同的資料,物件不需要做修改,只需要使用即可,不需要儲存在物件中,定義成靜態的

2.靜態函式

函式是否用靜態修飾,就參考一點,就是該函式功能是否有訪問到物件的特有資料

簡單點說,從源**看,該功能是否需要訪問非靜態的成員變數,如果需要,該功能就是非靜態的

如果不需要,就可以將該功能定義成靜態的。當然也可以定義成非靜態

但是非靜態需要被物件呼叫,而僅建立物件呼叫非靜態的沒有訪問特有資料的方法,該物件的建立就沒有意義

靜態**塊:

隨著類的載入而執行,而且只執行一次

作用:用於給類進行初始化

構造**塊:

構造物件用的**塊,可以給所有物件進行初始化

建構函式:是給對應的物件進行針對性的初始化

區域性**塊:限定區域性變數的生存週期

陣列工具類:

如果類中的方法都是靜態的,所以該類是不需要建立物件的,為了保證不讓其他程式建立該類物件,可以將該類的構造方法私有化

Java this關鍵字,static關鍵字

1,this.屬性,this.方法,表示當前物件的屬性,當前類的方法 2,this,表示當前物件,當前正在操作這個方法的物件就是當前物件 3,使用this 引數若干 可以呼叫當前類的構造方法,如果,構造方法之間相互呼叫,則有要求 一 this 必須放在首行,二 至少有乙個構造方法是沒有呼叫this ...

static關鍵字 final 關鍵字

特點 隨著類的載入而載入,也就是說靜態會隨著類的消失而消失,說明他的生命週期最長 靜態變數 static 關鍵字修飾成員變數,使用 類名.變數名 的形式來訪問,也可以使用 例項物件.變數名 的形式來訪問。靜態方法 static 關鍵字修飾成員函式,靜態方法可以使用 類名.方法名 的形式來訪問,也可以...

static關鍵字 java關鍵字

先按照宣告順序初始化基類靜態變數和靜態 塊,接著按照宣告順序初始化子類靜態變數和靜態 塊,而後按照宣告順序初始化基類普通變數和普通 塊,然後執行基類建構函式,接著按照宣告順序初始化子類普通變數和普通 塊,最後執行子類建構函式。import static com.test.test1.fu.say i...