Sobes.tech
Junior

როგორ განვახორციელოთ Kotlin-ში რამდენიმე კონსტრუქტორი ერთ კლასში?

sobes.tech AI

პასუხი AI-სგან

კოტლინში რამდენიმე კონსტრუქტორის შექმნა შესაძლებელია ძირითადი კონსტრუქტორის და საჭიროების შემთხვევაში, ერთ ან რამდენიმე მეორეული კონსტრუქტორის გამოყენებით.

ძირითადი კონსტრუქტორი პირდაპირ გამოაცხადება კლასის სათავეში:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // კლასი
}

მეორეული კონსტრუქტორები გამოაცხადება constructor საკვანძო სიტყვით:

class MyClass {
    // ძირითადი კონსტრუქტორი (მიუკერძოებელი ან აშკარა)

    constructor(param1: String) {
        // მეორეული კონსტრუქტორის ლოგიკა 1
    }

    constructor(param1: String, param2: Int) {
        // მეორეული კონსტრუქტორის ლოგიკა 2
    }
}

თუ კლასი აქვს ძირითადი კონსტრუქტორი, თითოეული მეორეული კონსტრუქტორი უნდა დელეგირებდეს ძირითადი კონსტრუქტორისკენ, this() გამოყენებით:

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // მეორეული კონსტრუქტორის ლოგიკა
    }
}

შეგვიძლია ასევე ჰქონდეს რამდენიმე მეორეული კონსტრუქტორი, რომლებიც დელეგირებენ ძირითადი ან სხვა მეორეულ კონსტრუქტორებს (დელეგირების ჰიერჰიას დაცვით):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // მეორეული კონსტრუქტორის 1 ლოგიკა
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // მეორეული კონსტრუქტორის 2 ლოგიკა
    }
}

მნიშვნელოვანი მომენტები:

  • ძირითადი კონსტრუქტორის სხეული შესრულდება მეორეული კონსტრუქტორების სხეულზე ადრე.
  • ძირითადი კონსტრუქტორის სათავეში გამოცხადებული თვისებები ხელმისაწვდომია მეორეული კონსტრუქტორების სხეულში.
  • Kotlin-ში რეკომენდებულია გამოიყენოს ძირითადი კონსტრუქტორი და, შესაძლებლობის ფარგლებში, თავიდან აიცილოს მეორეული კონსტრუქტორების გამოყენება, ნაცვლად სახელწოდებით არგუმენტების ან ფაბრიკი მეთოდების გამოყენების.