Модификатор public
Модификатор public
является модификатором видимости по умолчанию в Kotlin
и делает элемент (класс, функцию, свойство) видимым везде, где виден содержащий его класс.
Элементы, помеченные как public
, доступны из любого другого кода в том же модуле,
а также из других модулей, если сам класс также имеет соответствующую видимость.
Синтаксис
public class ClassName {
public fun functionName() {}
public val propertyName: Type = value
}
public fun functionName() {}
public val propertyName: Type = value
Пример
Создадим класс с public
методами и свойствами:
public class User {
public val name: String = "John"
public var age: Int = 25
public fun getUserInfo(): String {
return "Name: $name, Age: $age"
}
}
Теперь создадим экземпляр класса и вызовем public
методы:
val user = User()
println(user.name)
println(user.age)
println(user.getUserInfo())
Результат выполнения кода:
String "John"
Int 25
String "Name: John, Age: 25"
Пример
Модификатор public
является видимостью по умолчанию,
поэтому его можно не указывать явно:
class User { // public по умолчанию
val name: String = "John" // public по умолчанию
fun getUserInfo(): String { // public по умолчанию
return "Name: $name"
}
}
Пример
public
функции верхнего уровня доступны из любого места:
// File: utils.kt
public fun formatText(text: String): String {
return text.uppercase()
}
// File: main.kt
val formatted = formatText("hello")
println(formatted)
Результат выполнения кода:
String "HELLO"
Пример
public
свойства с пользовательскими методами доступа:
class Rectangle {
public var width: Int = 0
get() = field
set(value) {
field = if (value > 0) value else 0
}
public var height: Int = 0
get() = field
set(value) {
field = if (value > 0) value else 0
}
public val area: Int
get() = width * height
}
val rect = Rectangle()
rect.width = 10
rect.height = 5
println(rect.area)
Результат выполнения кода:
Int 50
Смотрите также
-
модификатор
private
,
который ограничивает видимость элемента пределами containing класса -
модификатор
protected
,
который делает элемент видимым в классе и его подклассах -
модификатор
internal
,
который делает элемент видимым в пределах текущего модуля -
ключевое слово
class
,
которое используется для объявления классов