برنامەنووسیی کۆبەندی (Object-Oriented Programming - OOP)
وانەی نۆیەمی پایثۆن: Object-Oriented Programming (OOP)، شێوازێکی بەرنامەسازییە کە پشت بە بەکارهێنانی پۆل و ئۆبجێکت دەبەستێت.
فێربوونی پایتۆن
February 5, 2025

وانە نۆهەم: برنامەنووسیی کۆبەندی (Object-Oriented Programming - OOP)
بەخێربێیت بۆ وانە نۆهەم لە سلسلەی فێربوونی زمانی پایثون! لەم وانەیەدا، ئێمە بە تێکچوونی برنامەنووسیی کۆبەندی (OOP) دەچینە سەر، کە شێوازێکی برنامەنووسییە کە بەکاردێت بۆ بەکارهێنانی کلاسەکان (Classes) و کۆبەندەکان (Objects) . برنامەنووسیی کۆبەندی یەکێک لە شێوازە باشترینە کە زۆرترین بەکارهێنانی لە برنامەنووسیی نوێدا دەبێت، و بەکاردێت لە ڕادەیەکی زۆری بەرنامەگەرە کارەبایەکان وەک توێژینەوەی داتا، گەشتنی یاریەکان، و گەشتنی وێب.
1. برنامەنووسیی کۆبەندی چییە؟
برنامەنووسیی کۆبەندی شێوازێکی برنامەنووسییە کە بەکاردێت بۆ مافکردنی کۆبەندەکان (Objects) کە کێشەکانی راستەقینە یان خەیاڵیان پێکدێنن. هەر کۆبەندێک پێکهاتووە لە:
- تایبەتمەندییەکان (Attributes): ئەمەکانە داتا یان حاڵەتی کۆبەندەکە دەریدەبڕن.
- ئاماژەکان (Methods): ئەمەکانە کارەکان یان ڕێگەکان دەریدەبڕن کە کۆبەندەکە دەتوانێت ئەنجام بدات.
نموونەکان لە کۆبەندەکان
-
ماشین:
- تایبەتمەندییەکان: ڕەنگ، جۆر، ژمارەی دراپۆڕەکان.
- ئاماژەکان: ماشین چالاککردن، ماشین وەستان.
-
کەس:
- تایبەتمەندییەکان: ناو، تەمەن، شار.
- ئاماژەکان: ڕۆشتن، قسەکردن.
2. کلاسەکان (Classes) و کۆبەندەکان (Objects)
أ. کلاس (Class)
کلاسەکە چوارچێوەیەکە یان دیزاینێک کە ڕێنمایی دەکات چۆن کۆبەندەکان دروست دەبن. دەتوانیت کلاس وەک "خەرتەیەک" بزانیت کە تایبەتمەندییەکان و ئاماژەکانی کۆبەندەکە دیاری دەکات.
ب. کۆبەند (Object)
کۆبەندەکە نموونەیەک (Instance) لە کلاسەکەیە. کاتێک کۆبەندێک دروست دەکەیت، نسخەیەکی نوێ لە کلاسەکە دروست دەکەیت کە تایبەتمەندییەکانی تایبەتی خۆی هەیە.
3. دروستکردنی کلاس و کۆبەند
أ. دیاریکردنی کلاس
کلاسەکە بە بەکارهێنانی وشەی کلیلی class دیاری دەکرێت.
class Car:
def __init__(self, color, model):
self.color = color # تایبەتمەندی
self.model = model # تایبەتمەندی
def start(self): # ئاماژە
print(f"The {self.color} {self.model} is starting.")
def stop(self): # ئاماژە
print(f"The {self.color} {self.model} is stopping.")
ب. دروستکردنی کۆبەند
بۆ دروستکردنی کۆبەند لە کلاس، ئێمە ناوی کلاس دەنووسین و بەهای پێویست دەدرێت.
4. دروستکردن (init ) و ئاماژەی خۆی (self)
أ. فانکشنی دروستکردن (init )
فانکشنی init فانکشنێکی تایبەتە کە بەکاردێت بۆ دەستپێکردنی کۆبەند کاتێک دروست دەکرێت. ئەم فانکشنە بە شێوەی خۆکار بەکاردهێنرێت کاتێک کۆبەندێک دروست دەکرێت.
ب. ئاماژەی خۆی (self)
هەموو فانکشنێک لە ناو کلاس پێویستی بە پارامەترێکی تایبەت هەبێت کە ناوی self دەبێت. ئەم پارامەترە نیشانەی خۆی کۆبەندەکەیە و بۆ دەستگەیشتن بە تایبەتمەندییەکان و ئاماژەکانی کۆبەندەکە بەکاردێت.
5. میراشتیەت (Inheritance)
میراشتیەت مفهومێکە کە یارمەتی ئەوەی دەدات کە کلاسێکی نوێ دروست بکەیت کە لەسەر بناغەی کلاسێکی دیاریکراوەوە. کلاسی نوێ کلاسی فرعي (Child Class) پێ دەوترێت، و کلاسی بناغە کلاسی باو (Parent Class) .
أ. دروستکردنی کلاسی فرعي
ب. بەکارهێنانی کلاسی فرعي
6. بستنەوەی (Encapsulation)
بستنەوەی مفهومێکە کە تایبەتمەندییەکان و ئاماژەکان لە ناو کۆبەندەکە بەردەوام دەبێت و ناتوانرێت بە شێوەی دەرەکی بەکاربێنرێن. ئەمە بە بەکارهێنانی تایبەتمەندییە تایبەتەکان (Private Attributes) کە بە شێوەی __ دەستپێدەکەنەوە.
أ. بەکارهێنانی تایبەتمەندییە تایبەتەکان
ب. بەکارهێنانی کۆبەند
7. ڕووبەندکردن (Abstraction)
ڕووبەندکردن مفهومێکە کە یارمەتی ئەوەی دەدات کە تایبەتمەندییە ئاڵۆزەکان بپوشێنرێن و تەنها ئەو ئاماژە و تایبەتمەندییانە پیشان بدەن کە بەکارهێنەر پێویستی بەوانە هەیە. لە پایثوندا، دەتوانین بە بەکارهێنانی ئاماژەیەکانی ڕووبەند (Abstract Methods) ئەم مفهومە بەکاربهێنین.
أ. دروستکردنی کلاسی ڕووبەند
ب. بەکارهێنانی کۆبەند
8. کارەکانی کارا
کارەکانی ١: ڕێکخستنی قوتابیان
کارەکانی ٢: سیستەمی بانک
9. پێشنیارەکان لەسەر برنامەنووسیی کۆبەندی
-
بەکارهێنانی کلاسەکان بە شێوەی باش: هەر کات پێویست بێت کۆبەندەکان بە تایبەتمەندی و ئاماژەیان بەکاربێنرێن، کلاس دروست بکە.
-
ڕەتکردنەوەی بەکارهێنان بە میراشتیەت: ئەگەر کلاسەکانی هاوشێوەی تایبەتمەندی یان ئاماژەیان هەبێت، بەکاربێنە میراشتیەت بۆ کەمکردنەوەی هێنانەوەی کۆد.
-
بستنەوەی بۆ پاراستنی داتا: بەکاربێنە تایبەتمەندییە تایبەتەکان بۆ پاراستنی داتا لە گەشتنی دەرەکی.
-
ڕووبەندکردن بۆ کەمکردنەوەی ئاڵۆزییەکان: بەکاربێنە ڕووبەندکردن بۆ پوشاندنی تایبەتمەندییە ئاڵۆزەکان و باشترکردنی کۆدەکە.
کۆتایی
لەم وانەیەدا، ئێمە فێر بووین لە بنەماکانی برنامەنووسیی کۆبەندی (OOP) و چۆنیەتی بەکارهێنانی کلاس و کۆبەند لە پایثوندا. برنامەنووسیی کۆبەندی ئامرازێکی هێزمندنە بۆ ڕێکخستنی کۆد و باشترکردنی دووبار
کۆمێنتەکان

هیچ کۆمێنتێک نییە
تکایە بچۆرە ژوورەوە بۆ ئەوەی کۆمێنتێک بنوسیت