その1: C言語欠点からのJava グローバル関数

C言語では、グローバル関数で重複した名前を付けられない

アプリケーション開発において、以前に作成したソースやオブジェクトファイルを結合して、 新たな作品を作ることが頻繁に行われます。
参考⇒(確認後はブラウザの戻る操作で戻ってください

しかしC言語では、同じ名前の関数名が、リンク時に重複の名前使用エラーになります。
つまり、関数名を重複できないので、 新しいアプリケーションで過去に作ったソースファイルを再利用する場合、 ソースファイルで、名前が重複しないように、変更しなければなりません。
(グローバル変数にも重複した名前が使えません。)

対してJavaでは

グローバル関数もグローバル変数も存在しません。 必ずクラスに属する形態になります。
また関数でなくメソッドと呼びます。クラスの中で関数の外側で宣言した変数も、変数と呼ばずにフィールドと呼びます
たとえば、『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');