Will the compiler-generated default constructor be public?

compiler-generated, default-constructor, java, member-access

Solution

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

Problem

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() {} } ```

Original source