dir.by  
  Поиск  
Программирование, разработка, тестирование
Kotlin
Что такое class в Kotlin? Пример: class MyBook { ... }
  Посмотрели 867 раз(а)    
 Что такое class в Kotlin? 
последнее обновление: 3 февраля 2025
Класс в Kotlin может содержать:
• Конструктор (первичный)
• Конструктор (вторинчный)
• Инициализирующий блок init
• Поля
• Свойства
• Функции
• Вложенные классы
В классе в Kotlin нет деструктора.

Говоря общими словами:
Класс в Kotlin описывает объект.
Kotlin программу можно представить как взаимосвязанные между собой объекты.
Синтаксис
чтобы определить класс
Используем слово class

  Kotlin  
class MyBook
{
   ...
}
Чтобы создать объект класса:
используем Название класса(параметры или без параметров)

  Kotlin  
MyBook("Hello!")


На заметку!
В других языках всегда использовалось слово new
В Java мы писали
  Java  
new MyBook("Hello!")
Пример 1 со вторичным конструктором
  Kotlin  
class MyBook
{
     var bookText:String // поле

     constructor(text:String) // конструктор
     {
          bookText = text;
     }

     fun Show() // метод
     {
          println(bookText.toString())
     }
}

fun main() {
     val book1 = MyBook("Hello!") // создаем объект

     book1.Show() // вызываем метод
}
На заметку!
это вторичный конструктор так теория описывает потому что он внутри класса
Пример 2 с основным конструктором
  Kotlin  
class MyBook(var bookText:String) // конструктор и поле в однм выражении
{
     fun Show() // метод
     {
          println(bookText.toString())
     }
}

fun main() {
     val book1 = MyBook("Hello!") // создаем объект

     book1.Show() // вызываем метод
}
На заметку
Он является основным конструктором
Пример 3 с основным конструктором и блоком инициализации
  Kotlin  
class MyShop(name: String, street:String) {
     val shopName = "Welcome to $name"

     init {
          println("первый блок инициализации... При необходимости используйте $name")
     }

     val streetName = "good $street"

     init {
          println("Второй блок инициализации... При необходимости используйте streetName")
     }
}

fun main() {

     val shop1 = MyShop("Book store", "Orange avenu") // создаем объект

}
На заметку!
Основной конструктор не может содержать в себе исполняемого кода.
Если нам надо выполнить какой-то инициализирующий код, то он может быть помещён в соответствующие блоки, которые помечаются словом init.
При создании объкта класса блоки инициализации выполняются в том порядке, в котором они идут в теле класса, чередуясь с инициализацией свойств.
Пример 4 с первичным конструктором и вторичным конструктором
  Kotlin  
class MyShop(val shopName:String) {

     private val shopFruits:MutableList<String> = mutableListOf()

     constructor(fruits:List<String>, name:String) : this(name) {

          shopFruits.addAll(0, fruits)
     }

     fun Show()
     {
          println("$shopName has fruits:")
          for (item in shopFruits)
               println(item)
     }
}

fun main() {

     val shop1:MyShop = MyShop(listOf("orange", "banana"), "Market")
     shop1.Show()

}
Запустим программу и увидим результат:
Market has fruits:
orange
banana
На заметку!
Если у класса есть основной конструктор и вторичный конструктор.
В этом случае вторичный конструктор должен вызывать основной конструктор используя слово this
.
this(параметры основного консруктора)
Пример 5 нет конструкторов но есть блок init
  Kotlin  
class MyShop {

     private val shopFruits:MutableList<String> = mutableListOf()

     init {
          shopFruits.addAll(listOf("orange", "banana"))
     }
    
     fun Show()
     {
          for (item in shopFruits)
               println(item)
     }
}

fun main() {
     val shop1:MyShop = MyShop()
     shop1.Show()
}
Запустим программу и увидим результат:
orange
banana
На заметку!
Если у класса нет основного конструктора и вторичного конструктора все равно блок инициализации выполнится.
Пример 6 нет конструкторов и нет блока init
  Kotlin  
class MyShop {

     var shopFruits:MutableList<String> = mutableListOf()

     fun Show()
     {
          for (item in shopFruits)
               println(item)
     }
}

fun main() {

     val shop1:MyShop = MyShop()
     shop1.shopFruits.addAll(listOf("orange", "banana"))
     shop1.Show()

}
На заметку!
Если у класса нет основного конструктора и нет вторичного конструктора, у этого класса автоматически сгенерируется пустой невидимый конструктор без параметров.
Видимость этого конструктора будет public.
 
← Предыдущая тема
Как найти enum по значению в Kotlin ?
 
Следующая тема →
lateinit это поздняя инициализация для поля class | Kotlin
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

  Объявления  
  Объявления  
 
Что такое Kotlin ?
Почему самой популярной средой разработки для Kotlin является IntelliJ IDEA?
Скачать и установить IntelliJ IDEA для изучения Kotlin
Создание нового проекта в IntelliJ IDEA для изучения Kotlin
Int, Float, Boolean, Char ...
Целые числа в Kotlin: Byte, UByte, Short, UShort, Int, UInt, Long, ULong
Десятичные числа в Kotlin: Float, Double
Флаг со значениями true или false в Kotlin это: Boolean
Символ в Kotlin это: Char
Конвертация числа в текст на языке Kotlin | Int → String
String
Строка, текст в Kotlin это: String
Интерполяция строк в Kotlin. Пример: val address:String = "${street}, ${country}"
В чем отличие String и StringBuilder ?
Enum
Что такое перечисление (enum) в Kotlin ?
Как найти enum по значению в Kotlin ?
Class
Что такое class в Kotlin? Пример: class MyBook { ... }
lateinit это поздняя инициализация для поля class | Kotlin
class, который наследует от интерфейса в Kotlin | Пример: class MyBook : IBook { ...}
Безымянный class, который наследует от интерфейса в Kotlin | Пример: val book1 = object : IBook { ...}
Общий, template class в Kotlin | Пример: class MyBook<T> { ... }
Коллекции и массивы
Создаем коллекции list, set, map и массив array в Kotlin
null
null значение используем символ ? и ?. и !! и ?: и !!. и ?. в Kotlin
Лямбда функция
Лямбда функция в Kotlin. Пример1: var myFunc1 : (a:Int, b:Int) -> Int = { p1, p2 -> p1 + p2 };

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика