Sobes.tech
Junior — Middle

Тафовутҳоро байни синфи баста ва enumeration дар забони барномасозӣ шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

Кодирув тилда, масалан, sealed class (жабилган синф) ва enum class (рақамли синф) чекланган турдаги турларни моделлаштириш учун хизмат қилади, аммо уларнинг турли хусусиятлари мавжуд.

  • Жабилган синф (sealed class) мерос олиш ҳиерархиясини яратишга imkon беради, улар ўз хусусиятлари ва методларга эга бўлиши мумкин. Барча мерос олувчилар бир хил файлда эълон қилиши керак, бу кенгайтириш назоратини таъминлайди.
  • Рақамли синф (enum class) бу синфнинг объектлари бўлган мустаҳкам константаларнинг тўплами. Enumлар мерос олишни қўллаб-қувватламайди, аммо хусусиятлар ва методлар бўлиши мумкин.

Фарқлар:

  1. Мерос олиш: жабилган синф турли тузилмаларга эга бўлган турли мерос олувчиларни яратиш имконини беради, enum — мустаҳкам объектлар тўплами.
  2. Ишлатиш: жабилган синф турли маълумотлар билан ҳолатларни ифодалаш учун қулай, enum — мустаҳкам константалар учун.
  3. Кенгайтириш: жабилган синф файлда кенгайтирилиши мумкин, enum — йўқ.

Жабилган синф намунаси:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

Enum намунаси:

enum class Direction {
    NORTH, SOUTH, EAST, WEST
}