A public class may be accessed outside of its package.
A non-public class may not be accessed outside of its package.
In Java, the access modifiers public
, protected
, package-private (default), and private
are used to control the visibility and accessibility of classes, methods, and fields.
When it comes to classes specifically, there are two main categories: public classes and non-public classes (also known as package-private or default access).
- Public Class:
- A class declared with the
public
modifier is accessible from any other class. - It can be used by classes in the same package, by classes in other packages, and by classes that are part of different projects.
javapublic class PublicClass {
// Class members and methods
}
- A class declared with the
- Non-Public Class (Package-Private):
- If no access modifier (default access) is specified for a class, it is considered to have package-private or default access.
- A class with default access is accessible only within the same package. It is not visible to classes in other packages.
javaclass PackagePrivateClass {
// Class members and methods
}
So, to answer the question “What is the difference between a public and a non-public class in Core Java?”:
- Public Class: Accessible from any class, regardless of its package.
- Non-Public Class (Package-Private): Accessible only within the same package.
Understanding these access modifiers is crucial for designing Java classes and managing the visibility of your code components.