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...