簡體   English   中英

如何在Java中識別方法的簽名?

[英]How to identify signatures of a method in Java?

我相信我無法理解如何在Java中給出方法的簽名。 例如,如果我的代碼是:

public void addOn(Fraction other) {
      number = other.denominator * number + other.numerator * denominator;
      denominator = denominator * other.denominator;

我必須給出方法addOn()的簽名;

這個方法的簽名只是addOn(Fraction);?

這實際上取決於您需要的“准確度”水平。

當你與同事非正式地交談時,那么“簽名”可能包含人類可能感興趣的所有信息:

  1. 返回類型
  2. 方法名稱
  3. 參數類型(包括它們的排序!)
  4. 投擲名單
  5. (注釋)

然而,當你來自編譯器構造函數或JVM編譯器的觀點時,答案是不同的; 在這種情況下,只有第2項和第3項很重要; 別的 簽名的一部分。

在Java中,方法簽名僅包含方法的名稱和參數的數據類型,而不包含任何其他內容。

例如,在您上面發布的方法中:

public void addOn(Fraction other) {

}

簽名將是addOn(Fraction)。

這是C ++和Java之間的區別之一,C ++簽名中也包含返回類型但在java返回類型中不是方法簽名的一部分。 所以在C ++方法的情況下,上述方法的簽名將為void addOn(Fraction);

如果要將Fraction作為參數傳遞給類。 首先,您需要創建Fraction引用

分數ref = new Fraction(); //假設分數類具有默認構造函數

然后你可以傳遞它;

addOn(ref); // Ref of Fraction類作為參數

我相信,你應該參考這篇文章

它明確指出方法簽名僅包含:

  1. 方法名稱
  2. 參數類型,即參數的類型和順序

所有其他部分,如異常,返回類型,注釋都是方法聲明的一部分,而不是簽名。

除了這些語法之外,在選擇方法名稱時還應考慮語義。

  • 方法名稱應遵循駝峰套管
  • 方法名稱應該有意義
  • 方法名稱應以動詞開頭

我建議你通過java編碼指南

暫無
暫無

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

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