access modifier in Kotlin

Classes, objects, traits, constructors, functions, properties and their setters can have visibility modifiers. (Getters always have the same visibility as the property.) There are four visibility modifiers in Kotlin:
Modifier | Meaning
----- | -----
public | Makes the declaration visible everywhere. This is applied by default, so it can be omitted.
protected | Is NOT available for declarations at the top level of a source file or package
private | Makes the declaration visible to code inside its source file, but invisible elsewhere.
internal | Makes the declaration visible inside the same module, but invisible elsewhere. A module is a set of Kotlin files that are compiled together, such as an IntelliJ IDEA module.