Sobes.tech
Junior

Чӣ гуна метавон чандин конструкторро дар як синф дар Kotlin амалӣ кард?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, синф метавонад як асосӣ конструктор ва як ё чанд конструкторҳои ёрирасон дошта бошад.

  1. Асосӣ конструктор: Дар сари синф муайян карда мешавад. Мумкин аст параметрҳо дошта бошад.

    class МанСинфиМан(private val баъзеХусусият: String) { // Асосӣ конструктор бо параметр
        // Танаи синф
    }
    
  2. Конструкторҳои ёрирасон: Бо калимаи калидии constructor эълон мешаванд. Агар синф дорои конструктори асосӣ бошад, ҳар як конструктори ёрирасон бояд мустақим ё ғайримустақим ба он такя кунад, бо истифода аз this().

    class БаъзеКласс(private val арзишиАсосӣ: Int) { // Асосӣ конструктор
    
        constructor дигарАрзиш: String) : this(дигарАрзиш.length) { // Конструктор ёрирасон, ки ба асосӣ такя мекунад
            // Логикаи конструктори ёрирасон
            println("Тав created бо сатр: $дигарАрзиш")
        }
    
        constructor(арзиш1: Int, арзиш2: Int) : this(арзиш1 + арзиш2) { // Боз як конструктор ёрирасон
            // Логика
            println("Тав created бо ду int: $арзиш1, $арзиш2")
        }
    }
    

Агар конструктори асосӣ набошад, конструкторҳои ёрирасон маҷбур нестанд, ки ба дигар конструкторҳо такя кунанд (аммо метавонанд).

class БеАсосӣ {

    constructor(арзиш: Int) {
        println("Тав created бо int: $арзиш")
    }

    constructor(арзиш: String) {
        println("Тав created бо сатр: $арзиш")
    }
}