關於java中的this用法,一直搞不清楚,有沒有人彙總一下?

時間 2021-06-06 18:48:37

1樓:aliblielite

有乙個最簡單有效的方法理解this。

由於this就是表示該類的例項,那麼你就把this替換成類名(實際上是例項名,但替換成類名更容易理解),然後再讀程式你就全懂了。

this如果不必要可省略。

最常用三個用法寫在一起:

public

class

Person

Person

(String

name

)Person

(String

name

,inta)

public

Person

getPerson

()// 其他與this無關的程式

public

String

getName

()public

void

setName

(String

name

)public

intgetAge

()public

void

setAge

(int

age)

}然後新增主程式:

public class TestPerson {public static void main(String args) {

Person leo = new Person("leo", 26);

System.out.println(leo.getName());

System.out.println(leo.getAge());

System.out.println(leo.getPerson執行後結果如下:

leo26

Person@279f2327

2樓:佐玄

舉個例子:

public class persion

public String getName()}在這個類中setName方法中第乙個變數用this是為了和本方法的引數this做區別,表示這個name指的是Person這個類的name屬性,而不是name引數,如果去掉這個this,執行完這個方法後,Person類的name屬性仍然為null

getName方法返回的Person類的name,之所以不用this是因為沒有必要,因為編譯器會知道這個name就指的是Person的name而不是其他的name(因為找個方法沒有name變數和它混淆)。當然,這個方法你也可以顯示的使用return this.name,沒錯。

Java中關於String的問題?

超級大地 Q1jvm執行記憶體分為五個部分,那字串常量池屬於哪個部分的?是屬於堆的一部分還是單獨的一部分記憶體區域?字串常量池屬於方法區,準確的來說是方法區中的執行時常量池。方法區邏輯上是堆記憶體的一部分,例如我們常用的HotSpot虛擬機器就是將方法區劃為堆記憶體中的永久代,但是為了區分,主流還是...

關於python中if的這種語句用法該如何理解?

imsilence 含義 將 lst 中的元素複製到新的list中,在複製過程中,如果元素為str 1 則在新的list中對應為str 4 使用基礎知識點 列表推到式 三目運算 列表推到式完整語法 translate x for x in list if filter x translate和fil...

關於be原型的用法?

是因為demand的用法中有這樣一條 demand that sb should 動詞原形其中,sb 必須是主格,should 可以省略,後面跟的動詞必須用動詞原形。而題主那句話的動詞原形是 be。類似的單詞還有 suggest,require,其他我一時想不起了,這應該是初高中的語法,可以啃本語法...