Scala Access Modifiers
Access modifiers control the visibility of classes and their members in Scala. This chapter details public, private, protected, and package-private modifiers.
Basic Access Modifiers
Public Access
Private Access
Protected Access
Package Private Access
Class Access Modifiers
Final Classes
Sealed Classes
Companion Objects and Private Members
Best Practices
-
Use default visibility:
- Make fields public by default
- Hide implementation details with private
-
Use protected wisely:
- For methods that need to be overridden
- For internal state that needs access in subclasses
-
Minimize visibility:
- Restrict access to what's necessary
- Use private for internal implementation
-
Use final when appropriate:
- For classes that shouldn't be extended
- For constants
-
Consider package private:
- For implementation details that don't need exposure outside package
- For package-internal utilities
Access modifiers are essential for encapsulation and information hiding in object-oriented programming.