javathis成員變數
『壹』 java中的成員變數、類變數,成員方法、類方法各是什麼,怎麼區分,
成員變數:包括實例變數和類變數,用static修飾的是類變數,不用static修飾的是實例變數,所有類的成員變數可以通過this來引用。
類變數:靜態域,靜態欄位,或叫靜態變數,它屬於該類所有實例共有的屬性。而且所有的實例都可以修改這個類變數的值(這個類變數沒有被final修飾的情況),而且訪問類變數的時候不用實例,直接用類名.的方式就可以。
成員方法:包括實例方法和類方法,用static的方法就是類方法,不用static修飾的就是實例方法。實例方法必須在創建實例之後才可以調用。
類方法:和類變數一樣,可以不用實例,直接用類就可以調用類方法。
舉例:
classDemo{
intx;//x是實例變數,也是成員變數
staticinty;//y為類變數,也是成員變數
publicintx(){//該方法為實例方法,是成員方法
returnx;
}
publicstaticvoidsetX(intx1){//該方法為類方法,也是成員方法
x=x1;
}
}
『貳』 本人java新手菜鳥,請問java this關鍵字到底指的是成員變數還是方法里的參數值
有this表示的是成員變數,沒有this修飾的就近原則,那個離他進就是哪個。比如成員變數跟參數都是握乎尺同一個名(例 int age)。在方法裡面,有this修飾的就是表示成員,沒有的就是參數。都沒有修飾,就表示是離他近的參數啦。。
當然這個回答只是回答了你的問題、
擴展一下內容吧=====
(當虛擬機創建一個對象,會創建一個指針指向自己)this就表示引用自己的指針,所以在靜態或靜態的代碼快中不能有this,因為沒有創建對象。
總結一下,其實this主要要三種用法:
1、表示頃行對當前對象的引用!
2、表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!其實這是第一種用法的特例,比較常用,所以那出來強調一下。
3、用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位於開始!
還有就是注意:this不能用在static方法中!所以甚至有人給static方法的定義就是:沒有this的方法!雖然誇張,但是卻充分說明this不能在static方法中使用!
說明在什麼情況下需要用到this:
第一、通過this調用另一個構造方法,用發是this(參數列表),這個僅僅在類的構造方法中,別的地方不能這么用。
第二、函數參數或者函數中的局部變數和成員變數同名的情況下,成員變數被屏蔽,此段高時要訪問成員變數則需要用「this.成員變數名」的方式來引用成員變數。當然,在沒有同名的情況下,可以直接用成員變數的名字,而不用this,用了也不為錯,呵呵。
第三、在函數中,需要引用該函所屬類的當前對象時候,直接用this。
其實這些用法總結都是從對「this是指向對象本身的一個指針」這句話的更深入的理解而來的,死記不然容易忘記而且容易搞錯,要理解!
『叄』 java中的this.name=name,this 中的name 和後面的name有啥么區別和作用,
在Java編程中,this.name和name在方法中具有不同的含義。具體而言,在構造方法中,this.name指的是類的成員變數,即類定義中的private String name。這里,this關鍵字用於明確標識當前對象的成員變數,以便區分與方法參數同名的變數。
另一方面,name指的是構造方法中的方法參數,即Test(String name)中的name。它是一個局部變數,僅在該方法的作用域內有效。當執行this.name=name這行代碼時,實際上是將方法參數name的值賦給當前對象的成員變數name。
通過這種方式,程序員可以在一個方法中使用和類中的成員變數同名的參數,而不會引起混淆。例如,在Test(String name)構造方法中,name參數用於初始化成員變數name。這種方式在處理大量同名變數時特別有用,可以提高代碼的可讀性和靈活性。
此外,this關鍵字在Java中用於引用當前對象的實例變數或調用當前對象的方法。在構造方法中,this可以用於區分實例變數和方法參數。如果沒有this關鍵字,那麼name將被視為方法參數,而不是類的成員變數。
總之,this.name和name在Java中的區別主要在於它們所在的上下文。this.name指的是類的成員變數,而name指的是方法參數。正確使用this關鍵字可以幫助程序員編寫更清晰、更易於維護的代碼。
『肆』 JAVA 中super 和this 的區別
區別如下:
1、指代上的區別
(1)super:是對當前對象中父對象的引用。
(2)This:指當前對象的參考。
2、引用對象上的區別
(1)super:直接父類中引用當前對象的成員(當基本成員和派生類具有相同成員時,用於訪問直接父類中隱藏父類中的成員數據或函數定義)。
(2)This:表示當前對象的名稱(程序中容易出現歧義的地方,應該用來表示當前對象;如果函數的成員數據與該類中成員數據的名稱相同,應用於表示成員變數名稱)。
3、調用函數上的區別
(1)super:在基類中調用構造函數(是構造函數中的第一條語句)。
(2)This:在此類中調用另一個結構化的構造函數(是構造函數中的第一條語句)。