簡體   English   中英

Java”。 運算符及其真正作用是什么?

[英]Java “ . ” Operator and what it really does?

假設您有一個名為Dude隨機類,並且有一些私有實例變量,並且有一些get方法和compareTo方法來說明該類的一個實例與該類的另一個實例是否具有相同的變量,並且差不多。 好吧,假設在某些驅動程序類中,您創建了兩個Dude對象,並將它們稱為d1d2 好了,現在您想比較兩者,看看它們是否具有相同的實例數據,因此您可以調用d1.compareTo(d2);

現在,我的問題是,在dude類中創建compareTo方法時,您將一個對象作為參數傳遞給另一個對象.....?

我在想它會變成這樣:

public boolean compareTo(Dude d){
    if (this.getArbitraryVariable() == d.getArbitraryVariable()) return true

等等。

但是要使它起作用,您將不知道當前正在執行的對象是什么,並且我能想到的唯一合乎邏輯的解釋是“”。 運算符使該類左邊的任何內容成為該類中的當前執行對象。 是不是?

那不是很正確的直覺。

當你寫d1.compareTo(d2); ,這會向下編譯為更接近compareTo(d1,d2)

也就是說,當您在對象上調用方法時,基本上是隱式地將對象作為第一個參數傳遞。

在方法內部時 ,可以使用關鍵字this來引用傳遞給該方法的隱式對象。

點運算符不僅為您提供當前的執行對象,還可以為您提供當前的執行類,這就是您使用靜態方法和靜態變量的方式。

對於前:-

staticClass.staticMethod();

您也可以使用點運算符進行鏈接。 對於前

String finalValue=input.replaceAll("numbers","alphabets").substring(0,`32).trim();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM