-7
class A{
public A(int i) {
System.out.println(1);
}
public A() {
this(10);
System.out.println(2);
}
void A() {
A(10);
System.out.println(3);
}
void A(int i) {
System.out.println(4);
}
}
public class MainClass{
public static void main(String[] args) {
new A().A();
}
}
私はこのコードの出力を理解していません。私は初心者であり、なぜこれが起こっているのか、実行トラックか、またはこのコードが実行されるとどうなるかを知りたいのですか?私はこのアプリケーションの出力が何であるか知る必要があります:1243
理解していない部分を説明するためには、その部分を教えてください。 「なぜこれが起こっているのか本当に知りたがっている」と言いましたが、これはあなたに言及していますか? – azurefrog
なぜ4が3より前に出力されるのですか – UrimHashani
メソッドコールの前にcontrcutionが発生します。そのため、基本コンストラクタが呼び出され、intコンストラクタが呼び出されます。したがって、1の前に1を返します。次に、intでメソッドoverloadを呼び出すA outputs 3. int overload print 4.デバッガとブレークポイントを使って、これを入力するのにかかる時間が短くて済みました。 –