2016-09-16 9 views
1

例えば、私はこれらの3つのオーバーロードされた関数を持っていると言う:関数のオーバーロード:さまざまな種類のオーバーロードされた関数の用語ですか?

/** Function #1 */ 
public static String add(List<String> operands) 
{ 
    return add(operands, 10); 
} 

/** Function #2 */ 
public static String add(List<String> operands, int base) 
{ 

    return Integer.toString(add(Integer.parseInt(operands.remove(0), base),operands, base), base); 
} 

/** Function #3 */ 
private static int add(int result, List<String> operands, int base) 
{ 
    if(operands.size() == 0) 
    { 
     return result; 
    } 

    result += Integer.parseInt(operands.remove(0), base); 

    return add(result, operands, base); 
} 

機能#1呼び出しので、この場合には機能#1の「親」オーバーロードされた関数を関数#2を呼び出すことが正しいだろう、それは、両方の一般市民ですか?

関数#3をこれらの関数の「再帰的」関数と呼ぶのも正しいでしょうか、またはそれが再帰的に自身を呼び出す隠し関数としてパブリック関数によって呼び出されたという事実を記述する別の用語がありますか?

私はそれらが正しい用語ではないことを知っていますが、私が得ようとしているのは、役割が与えられたさまざまなタイプのオーバーロードされた関数の用語が設定されているかどうかです。

+0

サイドノート:javaの関数はcamelCaseである必要があります。 – StackTraceYo

+1

メソッドが 'public'でAPIの一部である場合は、そのメソッドが使用されることが期待されます。 – flakes

+0

@Ahmadありがとうございました。それは時々C#からJavaに毎日切り替わる時に大変なことになります。 – bckr

答えて

2

私は、Java言語仕様にはない用語を定義するのは嫌です。

単純に3つの機能、2 publicと1 privateがあります。 の名前はですが、パラメータのタイプが異なるため、がオーバーロードされます。です。

実際、それ自身を呼び出す関数は、の再帰的な関数です。 JLSは、Javaコンパイラが自分自身を呼び出す関数をサポートする必要があるため、この用語を定義しています。

あなたの機能の1つを「親の過負荷」と呼ぶことはお勧めしません。特に「抽象」という用語の使用は特有のものです。

+0

"特有のもの"は当日の私の言葉です – flakes

+1

明日のために "floccinaucinihilipilification"はどうですか? (英国議会で今まで話されていた最長の言葉)。 – Bathsheba

+2

私はこれを私の呼吸の下で数分間発音しようとしてきました。私の同僚は私が今や狂った人だと思うかもしれません。 – flakes

0

この場合、特定の用語はありません。しかし、これに幾分似ているコンストラクタに使用されるパターンがあります。 "ビルドパターン"を使用して、それと同じアイデアと同じではなく、同じアイデアを直接使用することはできません。

関連する問題