Search code examples
javadefault-constructormember-accesscompiler-generated

Will the compiler-generated default constructor be public?


When I write a class Widget.java

public class Widget {
    int data;
    String name;
}

will the compiler-generated constructor be public or default?

public would be like

public class Widget {
    int data;
    String name;
    public Widget() {}
}

whereas default similar to

public class Widget {
    int data;
    String name;
    Widget() {}
}

Solution

  • It depends on your class visibility.The compiler uses the class visibility and generates a no-arg default constructor with the same visibility