error in the very first line public class StaticDemo {
Any Class A
which has access modifier as public
must have a separate source file as A.java
or A.jav
. This is specified in JLS 7.6 section:
If and only if packages are stored in a file system (ยง7.2), the host system may choose to enforce the restriction that it is a compile-time error if a type is not found in a file under a name composed of the type name plus an extension (such as .java or .jav) if either of the following is true:
The type is referred to by code in other compilation units of the package in which the type is declared.
The type is declared public (and therefore is potentially accessible from code in other packages).
However, you may have to remove public
access modifier from the Class declaration StaticDemo
. Then as StaticDemo
class will have no modifier it will become package-private, That is, it will be visible only within its own package.
Check out Controlling Access to Members of a Class