1. 程式人生 > >Java static修飾的方法中不能使用this、super關鍵字

Java static修飾的方法中不能使用this、super關鍵字

   首先,Java中可以使用static宣告屬性或方法,如果現在希望一個屬性被所有物件所共同擁有,則可以將其宣告為static型別。宣告static型別的屬性或方法之後此屬性或方法也稱為類方法,可以有類名稱直接呼叫。而其中,static修飾方法後,該方法也就隨著類的載入而載入,也就是說該方法屬於類呼叫了,不能用於物件呼叫。而在方法中定義的this關鍵字,用於代替當前物件的引用,而此時的this只能用於兩種情況 一、用來呼叫當前物件的方法。 二、用來處理成員變數和區域性變數重名的情況。 因此在static修飾的方法中,因為呼叫的是類,而不是一個物件,導致this無法找到合適的物件,也就無法代替物件的引用,
因此在static修飾的方法中無法使用this關鍵字(super)。

相關推薦

Java static修飾方法不能使用thissuper關鍵字

   首先,Java中可以使用static宣告屬性或方法,如果現在希望一個屬性被所有物件所共同擁有,則可以將其宣告為static型別。宣告static型別的屬性或方法之後此屬性或方法也稱為類方法,可

java的構造方法thissuper的用法

重寫 需要 註意事項 進行 private class print 沒有 系統 1、構造方法 定義:與類同名沒有返回值的方法稱為構造方法; public class test1 {private String name;private int age;public test

Java的繼承方法覆蓋(方法重寫)super關鍵字

Java繼承 繼承 繼承是面向物件的一個重要的特性,它體現了類與類之間的一些邏輯關係,目的是為了程式碼複用(以減少開發成本)。當多個類之間有一些共同的屬性(成員變數)和功能(成員方法)時,我們可以將他們共同的部分拿出來作為一個父類定義實現這些共性,這些類中可以不再定義這

javathissuperthis()super()的用法和區別

this關鍵字:一.this是什麼?this是一個引用型別,在堆中的每一個java物件上都有this,this儲存記憶體地址指向自身。二.this及this()能用在哪些地方?this可以用在成員方法中.this()可以用在構造方法中.語法: this(實參);通過一個構造方

靜態方法問什麼不能使用thissuper關鍵字

感性方面  首先區分類和物件,物件是類的一個例項。也就是物件會有多個而類只有一個。靜態方法是類中擁有的。this代表當前物件。super代表當前物件的父類物件。可以看出來靜態方法只有一個,而this、super是多個。理性方面記憶體載入順序是不同的,記憶體先載入類再此同時會將

Java-thissuper關鍵字(認真分析)

習慣 類成員 發生 nbsp spa author ++ jvm 類繼承 一、this關鍵字   this關鍵字只能用於方法體內,當創建一個對象時候,JVM就會為這個對象分配一個資深的指針,就是this。因此this只能在非靜態方法中使用,靜態方法和靜態的代碼塊中絕對不能使

javathissuper關鍵字的作用

etag 傳遞 記錄 ont this spa 根據 普通 void emmmmmm也真的是好久沒有寫過java了,因為項目需要, 最近又必須重新拾起來了,雖然好多東西也都忘得差不多了.... 然後發現 竟然把super和this傻傻分不清.... 開個帖子記錄一下: 一、

細節3:staticfinalthissuper關鍵字

teacher 副本 super 構造 基本數據 靜態 dom 輸出結果 new 1、static static關鍵字修飾的變量或者函數是屬於整個類的,調用方式,類名.變量/方法 靜態函數中,只能調用靜態的變量或者函數 靜態的變量只會運行一次 public

Javathissuper關鍵字

一.this   Java關鍵字this只能用於方法方法體內。當一個物件建立後,Java虛擬機器(JVM)就會給這個物件分配一個引用自身的指標,這個指標的名字就是this。因此,this只能在類中的非靜態方法中使用,靜態方法和靜態的程式碼塊中絕對不能出現this,這在“Java關鍵字s

finalstaticthissuper 關鍵字總結

final 關鍵字 final關鍵字主要用在三個地方:變數、方法、類。 對於一個final變數,如果是基本資料型別的變數,則其數值一旦在初始化之後便不能更改;如果是引用型別的變數,則在對其初始化之後

Javathissuper關鍵字的區別

this強調的是物件的本身,通過this呼叫的屬性和方法都是它所屬於的那個類中的屬性和方法。屬於物件和類間的關係 super在子類中呼叫父類的方法和屬性。屬於子類和父類兩個類間的關係 //父類

Javathissuper關鍵字區別

1.  super關鍵字表示的是子類呼叫父類的中指定的操作。例如:呼叫屬性,方法,構造等.  因為在子類例項化的時候會預設呼叫父類的無參構方法,如果現在希望呼叫友殘構造,則必須在子類中明確的宣告。 舉例: public class ExtDemo05 { publ

Javathissuper關鍵字

    一、關鍵字--this    1、this是什麼?     在Java中,this關鍵字的作用和其詞義很接近.     它在方法內部使用,即這個方法所屬物件的引用; 普通方法中,this總是指向呼叫該方法的物件;     它在構造器內部使用,表示該構造器正在初始化的

Java基礎(三)----------Javathissuper關鍵字

1.this物件本身 在Java語言中,當建立一個物件後,Java虛擬機器就會為其分配一個指向物件本身的指標,這個指標就是“this”(在java裡面沒有指標的定義。但是java裡面的“指標”無處不在)。 在我們使用this時,this一般出現在類的方法裡面,當這個方法還沒有呼叫的時候thi

5.Javathissuper關鍵字總結

數據 構造 xxx ring user 其它 super() pre string this this是自身的一個對象,代表對象本身。 this一般有3種用法: 1.普通的直接引用:this.userName 2.形參與成員名字重名,this起到

Javathisstaticsuperfinal

this class Person { public String _name; public int _age; public Person() //無參構造 { System.out.println("Person()");

java靜態方法為什麼不能使用thissuper和直接呼叫非靜態方法

這個要從java的記憶體機制去分析,首先當你New 一個物件的時候,並不是先在堆中為物件開闢記憶體空間,而是先將類中的靜態方法(帶有static修飾的靜態函式)的程式碼載入到一個叫做方法區的地方,然後再在堆記憶體中建立物件。所以說靜態方法會隨著類的載入而被載入。當你new一個物件時,該物件存在於對

為什麼靜態成員靜態方法static不能用thissuper關鍵字

因為this代表的是呼叫這個函式的物件的引用,而靜態方法是屬於類的,不屬於物件,靜態方法成功載入後,物件還不一定存在 在問題之前先講super的用法:1.super的用法跟this類似,this代表對本類物件的引用,指向本類已經建立的物件;而super代表對父類物件的引用,指

[轉] Java的finalstaticthissuper

解釋 易懂 length 多少 的區別 eem art import this關鍵字 final 關鍵字 final關鍵字主要用在三個地方:變量、方法、類。 對於一個final變量,如果是基本數據類型的變量,則其數值一旦在初始化之後便不能更改;如果是引用類型的變量,則在對

day4(繼承修飾方法的重寫super關鍵詞繼承的構造方法object類對象轉型)

編程 權限 數列 als str list 兩個 instance 變量 1.類的繼承(extends)通過繼承,子類自動擁有父類的所有成員(成員變量和成員發方法)一個子類只能有一個父類,一個父類可以派生多個子類 2.訪問修飾符(private 默認 protected