アプリケーション開発において、以前に作成したソースやオブジェクトファイルを結合して、
新たな作品を作ることが頻繁に行われます。
参考⇒(確認後はブラウザの戻る操作で戻ってください)
しかしC言語では、同じ名前の関数名が、リンク時に重複の名前使用エラーになります。
つまり、関数名を重複できないので、
新しいアプリケーションで過去に作ったソースファイルを再利用する場合、
ソースファイルで、名前が重複しないように、変更しなければなりません。
(グローバル変数にも重複した名前が使えません。)
グローバル関数もグローバル変数も存在しません。
必ずクラスに属する形態になります。
また関数でなくメソッドと呼びます。クラスの中で関数の外側で宣言した変数も、変数と呼ばずにフィールドと呼びます
たとえば、『AクラスのinputメソッドをCクラスのmainメソッドで呼び出す』のような表現になります。
(Bクラスのstaticフィールドvb)も使っている例です)
なお、同じクラスクラスのメソッドを呼び出す場合は、『クラス名.』の表現を省略できます。
しかも、引数の数や型が違えば、同じ名前の関数(⇒メソッドと呼ぶ)がいくつでも作れます。
public class A { public static void input(){ ・・・ } public static void input(double arg){ ・・・ } public static void input(char arg){ ・・・ } }
このように、引数の数や型変更して、同じ名前の関数(⇒メソッドと呼ぶ)を作ることを、関数の多重定義(オーバーロード)と呼びます。
これはメソッドの呼び出し側の表現で、適切なメソッドが自動的に判断されて、選択実行されることになります。
A.input(12.34); A.input('A');