Դասում կարող է սահմանվել մեկից ավելի կոնստրուկտորներ: Սա կոչվում է կոնստրուկտորի գերբեռնում: Սովորաբար կա կոնստրուկտոր, որը չունի պարամետրեր (կառուցողի անվանը հաջորդող փակագծերի ներսում ոչինչ չկա), ինչպես վերը նշված Աշխարհի կոնստրուկտորը: Սա նաև կոչվում է առանց փաստարկների կառուցող:
Քանի՞ կոնստրուկտոր կարող է լինել դասում:
Խստորեն ասած, JVM դասի ֆայլի ձևաչափը սահմանափակում է մեթոդների քանակը (ներառյալ բոլոր կոնստրուկտորները) դասի համար 65536-ից պակաս: Իսկ ըստ Թոմ Հոութինի, արդյունավետ սահմանաչափը 65527 է:. Մեթոդի յուրաքանչյուր ստորագրություն տեղ է զբաղեցնում մշտական լողավազանում:
Կարո՞ղ է դասը ունենալ մի քանի կոնստրուկտոր:
Դասում երկու (կամ ավելի) կոնստրուկտորներ ունենալու տեխնիկան հայտնի է որպես կոնստրուկտորների գերբեռնում: Դասը կարող է ունենալ մի քանի կոնստրուկտորներ, որոնք տարբերվում են իրենց պարամետրերի քանակով և/կամ տեսակով: Այնուամենայնիվ, հնարավոր չէ ունենալ երկու կոնստրուկտորներ՝ ճիշտ նույն պարամետրերով:
Կարո՞ղ ենք C-ի դասում ունենալ մեկից ավելի կոնստրուկտորներ:
C++-ում մենք կարող ենք ունենալ մեկից ավելի կոնստրուկտորներ նույն անունով դասում, քանի դեռ յուրաքանչյուրն ունի արգումենտների տարբեր ցուցակ: Այս հայեցակարգը հայտնի է որպես Constructor Overloading և բավականին նման է ֆունկցիայի գերբեռնմանը:
Կարո՞ղ եք զանգահարել կոնստրուկտոր:
Մեթոդից կոնստրուկտոր կանչելը
Ոչ, դուք չեք կարող կոնստրուկտոր կանչել մեթոդից: Միակ տեղը, որտեղից կարող եք կանչել կոնստրուկտորներին՝ օգտագործելով «այս» կամ «սուպեր»-ը, մեկ այլ կոնստրուկտորի առաջին տողն է: Եթե դուք փորձեք բացահայտորեն կանչել կոնստրուկտորներ այլուր, կստեղծվի կոմպիլյացիայի ժամանակի սխալ: