Skip to main content
A private function in Kotlin is a function restricted by the private visibility modifier, confining its accessibility strictly to the lexical scope of its declaration. The exact visibility bounds depend on whether the function is declared as a member of a class/interface or at the top level of a file.

Class and Interface Members

When declared inside a class or interface, a private function is visible only within that specific class or interface. It is strictly hidden from external callers, instantiated objects, and subclasses.

Top-Level Declarations

Kotlin allows functions to be declared at the top level of a file, outside of any class. When a top-level function is marked private, its visibility is restricted to the specific .kt file in which it is defined. It cannot be imported or invoked by code residing in other files, even if they share the same package.

Companion Object Visibility

If a private function is declared inside a companion object, it is accessible to the companion object itself and the enclosing class. However, it remains hidden from external scopes.
Tired of Poor Kotlin Skills? Fix That With Deep Grasping!Learn More