class Machine {
private String name;
private int code;
public Machine(){
this("back",1);
System.out.println("constructor working!!!!");
}
public Machine(String name){
this("jick",1);
System.out.println("Second constructor!!!");
this.name = name;
}
public Machine(String name, int code){
// this(); compile time error
//this("back"); //compile time error
System.out.println("third constructor");
this.name = name;
this.code = code;
}
}
public class Constructoroverloading{
public static void main(String[] args) {
//Machine m1 = new Machine();
// Machine m2 = new Machine("shruthi");
// Machine m3 = new Machine("shruthi",20);
}
}
Вот программу я писал, у меня есть сомнения в том, что, почему моем третий конструктор не в состоянии назвать первые и вторые конструкторы. когда я пытался вызвать первый или второй конструктор, компилятор показывает, что рекурсивная ошибка вызова, я не совсем понимаю концепцию и почему я получаю эту ошибку времени компиляции.ниже программы очень много путаницы о конструкторе вызова очень новый для Java, пожалуйста, объясните концепцию ясно
Как 'Machine (имя String, INT код)' вызова любого из двух других конструкторов, когда они их сами называют этот конструктор, он не имеет никакого смысла – MadProgrammer
Попробуйте выполнить свой код, если он скомпилируется. Вы быстро поймете, почему это не имеет смысла. – Pshemo
@ paulsm4 Я не думаю, что OP спрашивает о наличии * обеих * строк там, но говорит, что оба были судимы отдельно: «когда я пытался вызвать первый или второй конструктор ...». –