0
Javaでは、主なメソッドが上に(あるいは少なくとも私がそうするように)記述されることが多く、これらのメソッドでは、それぞれのクラスが下に宣言されていてもオブジェクトが作成されます。なぜコンパイルエラーにならないのですか?私はjavaが手続き型ではないことを知っていますが、これに対する答えは決して見つかりませんでした。Javaでは、宣言する前にクラス内のクラスを使用するのはなぜですか?
public static void main (String[] args)
{
baby1 obj1 = new baby1();
baby2 obj2 = new baby2();
}
class baby1
{
//some code
}
class baby2
{
//some code
}
この言語はそのような前方参照を可能にするためです。それは単に設計上の決定です。 –
Javaは[マルチパスコンパイラ](https://en.wikipedia.org/wiki/Multi-pass_compiler)を使用しています。 – Blorgbeard
実際、それはなぜでしょうか? Cでは、この問題はコンパイラーがすべてを1回のパスで分析できることが必要なために発生します。 Javaはより新しいものであり、この言語の設計者はCの設計時と同じメモリ制約を受けていませんでした。 –