javathisstatic
⑴ java中static與this區別及使用
static:靜態修飾符
static表示「全局」或者「靜態」的意思,用來修飾成員變數和成員方法,也可以形成靜態static代碼塊,但是Java語言中沒有全局變數的概念。
this:代表當前的對象
this關鍵字主要有三個應用:
(1)this調用本類中的屬性,也就是類中的成員變數;
(2)this調用本類中的其他方法;
(3)this調用本類中的其他構造方法,調用時要放在構造方法的首行。
⑵ Java: this 不能用於static 方法的詳細原因
因為被static修飾的函數,在程序被初始化的時候已經載入進內存了,這是為了以後可以直接由類來調用,而this關鍵字寫在static函數內,指代的是此class的實例化對象
由於static方法初始化後會放在全局數據區,this代表的變數還沒有被實例化,此時編譯不通過的
⑶ java中this為什麼不能在static方法中使用呢
static的目的是使方法或屬性獨立於類的實例,使用類去訪問,而不是實例(但實例也可以訪問),所以他修飾的方法或屬性也叫全局方法或屬性。
而像super或是this,他們都是相對與某個對象而言的,跟具體的一個對象相關聯,而static是相對於類而言的,所以不能在static里用this或是super。
一樓的兄台說錯了,就算你加上static也不可以,不信你到main方法里用this調用個靜態方法試試看~~
⑷ java中為什麼在static中不能使用this關鍵字
在方法中定義使用的this關鍵字,它的值是當前對象的引用.也就是說你只能用它來調用屬於當前對象的方法或者使用this處理方法中成員變數和局部變數重名的情況.
而且,更為重要的是this和super都無法出現在static 修飾的方法中,static 修飾的方法是屬於類的,該方法的調用者可能是一個類,而不是對象.如果使用的是類來調用而不是對象,則 this就無法指向合適的對象.所以static 修飾的方法中不能使用this.
⑸ java語言中this和static怎麼用呢
this指的是當前對象的指針
static表示靜態,靜態的東西存放的位置與普通變數不一樣,生存期,有效期,作用域都不一樣
⑹ Java static方法里為什麼不能使用this關鍵字
this表示當前類的對象,由static修飾的方法是由類直接調用,不需要創建對象,所以在static里不能用this.
⑺ 我不知道java中this與static有什麼沖突
你是不是哪裡理解錯了,this一般就是作為某個對象來引用的,而static是靜態的,創建時機不一樣的,所以static的反而不能用this引用才對啊。
再說你這個方法,這個this引用的不是你的i,是一個Leaf對象,這個i是這個對象的成員屬性,你的測試中就是調用了兩次increament方法,修改了這個對象的成員屬性值
⑻ Java static方法里為什麼不能使用this關鍵字
java中的static是類區域,換句話說就是所有該類的所有實例共享的區域,而this指的是當前的類實例索引。在類區域中是無法確定某個類實例的。
eg。
class A
{
private static Stirng Static = "123";
}
這個字元串Static所有A的實例都可以訪問到。
反過來,
class A
{
public static void fun()
{
this // 這里不能使用 因為 static區域內不能確定是某個特定的A的實例
}
}