Ich verstehe nicht, warum Standardkonstruktor nach parametrisierten Konstruktor in diesem Programm ausgeführt wird?Warum gibt dieses Schlüsselwort im Konstruktor ein anderes Ergebnis?
class A{
int a , b;
A(){
this(10,20);
System.out.println("Inside Default Constructor values:"+a+" "+b);
}
A(int a , int b){
this.a=a;
this.b=b;
System.out.println("Inside Parameterized Constructor values:"+a+" "+b);
}
}
public class thisExample {
public static void main(String[] args) {
A obj = new A();
}
}
Dies gibt Ausgang als:
Inside Parameterized Constructor values:10 20
Inside Default Constructor values:10 20
ist es nicht. Sie loggen nur nach parametrierter Ausführung ein. tatsächlich parametrisiert wird innerhalb des Standards ausgeführt – pirho
Was denkst du 'this (10,20);' tut? –
Das sieht nach einer * großartigen * Möglichkeit aus, einen Debugger zu verwenden, um den Code Zeile für Zeile durchzugehen und zu beobachten, wie er sich verhält. Sie werden feststellen, dass jede Anweisung in der Reihenfolge ausgeführt wird, in der sie aufgerufen wird. – David