Sinflar va tuzilmalar o'rtasidagi farq

Sinflar va tuzilmalar o'rtasidagi farq
Sinflar va tuzilmalar o'rtasidagi farq

Video: Sinflar va tuzilmalar o'rtasidagi farq

Video: Sinflar va tuzilmalar o'rtasidagi farq
Video: Oleg Shibanov: Makroiqtisodiyot, krizislarning tabiati va mohiyati, Moliya bozorlari 2024, Iyul
Anonim

Sinflar va tuzilmalar

Obyektga yoʻn altirilgan (OO) dasturlash tillarining asosiy tushunchalaridan baʼzilari inkapsulyatsiya, meros va polimorfizmdir. Class va Structure OO konstruksiyalari/asboblaridan ikkitasi boʻlib, ular dasturchilarga chiqayotgan OO dasturlash tillarining koʻpchiligida ushbu tushunchalarga erishishga yordam beradi (Java tuzilmalarni taqdim etmaydi). Sinflar real dunyo ob'ektlarining mavhum tasviridir. Strukturalar shunga o'xshash foydalanishga ega bo'lgan sinflarga juda o'xshash, ammo sinflarga nisbatan bir nechta cheklovlarga ega. Har ikkala sinf va tuzilma oʻxshash turdagi maʼlumotlarni birgalikda guruhlash uchun ishlatiladi.

Darslar nima?

Sinflar real dunyo ob'ektlarining mavhum tasvirini aks ettiradi, munosabatlar esa har bir sinf boshqalar bilan qanday bog'langanligini tasvirlaydi. Sinflar ham, munosabatlar ham atributlar deb ataladigan xususiyatlarga ega. Sinflardagi usullar ushbu sinflarning xatti-harakatlarini ifodalaydi yoki belgilaydi. Sinflarning usullari va atributlari sinf a'zolari deb ataladi. Odatda, inkapsulyatsiya atributlarni shaxsiy qilish va shu atributlarga kirish uchun ishlatilishi mumkin bo'lgan umumiy usullarni yaratish orqali erishiladi. Ob'ekt - bu sinfning namunasi. Meros foydalanuvchiga sinflarni (sub sinflar deb ataladi) boshqa sinflardan (super sinflar deb ataladi) kengaytirish imkonini beradi. Polimorfizm dasturchiga sinf ob'ektini super sinf ob'ekti o'rniga almashtirishga imkon beradi. Odatda, muammo ta'rifida topilgan otlar to'g'ridan-to'g'ri dasturda sinflarga aylanadi. Va shunga o'xshab, fe'llar usullarga aylanadi. Umumiy, xususiy va himoyalanganlar sinflar uchun ishlatiladigan odatiy kirish modifikatorlaridir. Sinf diagrammasi tizimlarning sinflarini, sinflar o'rtasidagi munosabatlarni va ularning atributlarini ko'rsatadi.

Tuzilishlar nima?

Yuqorida aytib o'tilganidek, tuzilmalar shunga o'xshash foydalanishga ega bo'lgan sinflarga juda o'xshaydi, lekin sinflarga qaraganda bir oz cheklangan imkoniyatlardir. Darhaqiqat, sinflarni tuzilmalarning kengaytmasi sifatida ko'rib chiqish mumkin. Masalan, tuzilmalar C++ tilidagi sinflar bilan bir xil, ammo ularda sukut bo'yicha umumiy a'zolar mavjud. Tuzilma foydalanuvchi tomonidan kompozit turni ifodalash uchun belgilanishi mumkin. Sinflarga o'xshab, tuzilmalar ko'p turlarga tegishli bo'lgan a'zolarni o'z ichiga oladi. Struct kalit so'zi C va C++ tillarida strukturani aniqlash uchun ishlatiladi, Structure kalit so'zi esa. NET dasturlash tillarida xuddi shu uchun ishlatiladi.

Sinflar va tuzilmalar oʻrtasidagi farq nima?

Garchi sinflar ham, tuzilmalar ham dasturlash tillarida mavjud boʻlgan oʻxshash konstruksiyalar boʻlsa-da, ular juda nozik farqlarga ega. Odatda, sinf strukturaning kengaytmasi bo'lib, shuning uchun tuzilmalar ba'zi nisbiy cheklovlarga ega. Masalan, tuzilmalarni C++ tilidagi sinflar bilan bir xil deb hisoblash mumkin, lekin a'zolar sinflarda sukut bo'yicha umumiy emas (tuzilmalardan farqli o'laroq). Bu aslida siz C++ da tegishli kirish modifikatorlari yordamida bir xil xususiyatlarga ega sinf va tuzilmani belgilashingiz mumkinligini anglatadi. Biroq, C da tuzilmalar hech qanday funksiya yoki ortiqcha yuklangan operatsiyalarni o'z ichiga olmaydi. Class va struct kalit so'zlari mos ravishda C++ da sinf va strukturani aniqlash uchun ishlatiladi.. NET tillari (C, VB. NET va boshqalar) haqida gap ketganda, sinf mos yozuvlar turi, struktura esa qiymat turi hisoblanadi. Odatda, tuzilmalar kichikroq ob'ektlar uchun ishlatiladi, lekin sinflar xotirada uzoqroq saqlanadigan kattaroq ob'ektlar uchun ishlatiladi.

Tavsiya: