Swift OOP
Swift OOP
Struct’lar va sinflar misolida qiymat va havola semantikasini hamda ular o‘rtasida nusxalash qanday farq qilishini tushuning.
Obyektga yo‘naltirilgan dasturlash
Swift sinflar va protokollar yordamida obyektga yo‘naltirilgan dasturlashni qo‘llab-quvvatlaydi.
Obyektga yo‘naltirilgan dasturlash (OOP) — "obyektlar" tushunchasiga asoslangan dasturlash paradigmasi; obyektlar maydonlar (ko‘pincha atributlar yoki xususiyatlar deb ataladi) ko‘rinishidagi ma’lumotlarni va protseduralar (ko‘pincha metodlar deb ataladi) ko‘rinishidagi kodni o‘z ichiga olishi mumkin.
Swift OOP’ni amalga oshirish uchun sinflar va protokollardan foydalanadi.
- Sinflar: Havola tiplari; vorislik, protokollar, kirishni boshqarish (access control) va xotirani boshqarishni qo‘llab-quvvatlaydi.
- Struct’lar: Qiymat tiplari; vorislik, protokollar, kirishni boshqarish va xotirani boshqarishni qo‘llab-quvvatlaydi.
Struct’lar va sinflar
Qiymat tiplari uchun struct’lardan, havola tiplari uchun esa sinflardan foydalaning.
Sintaksis:
struct Name { ... }class Name { ... }- Qiymat tipi (struct): O‘zlashtirishda va uzatishda nusxalanadi.
- Havola tipi (class): Bir nechta havola bitta nusxaga (instance) ishora qiladi.
Misol
struct Point { var x: Int; var y: Int }
var p1 = Point(x: 1, y: 2)
var p2 = p1 // copy
p2.x = 10
print(p1.x) // 1
print(p2.x) // 10
class Counter { var value = 0 }
let c1 = Counter()
let c2 = c1 // reference
c2.value = 5
print(c1.value) // 5
Ushbu misol struct’lar o‘zlashtirishda nusxalanishini, sinflar esa havolalarni baham ko‘rishini ko‘rsatadi, shuning uchun bitta havola orqali kiritilgan o‘zgarishlar ikkinchisiga ham ta’sir qiladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
