Sobes.tech
Junior

Ինչպե՞ս կարելի է Kotlin-ում մի քանի կոնստրուկտորներ իրականացնել մեկ դասում։

sobes.tech AI

Պատասխան AI-ից

Kotlin- ում մի քանի կոնստրուկտորներ ստեղծելու համար օգտագործվում է հիմնական կոնստրուկտորը և անհրաժեշտության դեպքում՝ մեկը կամ մի քանի երկրորդական կոնստրուկտորներ:

Հիմնական կոնստրուկտորը հայտարարում է ուղղակի դասի գլխում:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Դասի մարմինը
}

Երկրորդական կոնստրուկտորները հայտարարում են constructor բանալի բառով:

class MyClass {
    // Հիմնական կոնստրուկտոր (անվանելի կամ անանուն)

    constructor(param1: String) {
        // Երկրորդական կոնստրուկտորի տրամաբանությունը
    }

    constructor(param1: String, param2: Int) {
        // Երկրորդական կոնստրուկտորի տրամաբանությունը
    }
}

Եթե դասը ունի հիմնական կոնստրուկտոր, ապա յուրաքանչյուր երկրորդական պետք է ժառանգի կանչը հիմնական կոնստրուկտորին՝ օգտագործելով 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-ում խորհուրդ է տրվում օգտագործել հիմնական կոնստրուկտորը և հնարավորության դեպքում՝ խուսափել երկրորդական կոնստրուկտորներից՝ նախընտրելով անվանված արգումենտներ կամ գործարանային մեթոդներ։