برنامەنووسیی کۆبەندی (Object-Oriented Programming - OOP)

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

فێربوونی پایتۆن

February 5, 2025

Object-Oriented Programming (OOP)

وانە نۆهەم: برنامەنووسیی کۆبەندی (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) و چۆنیەتی بەکارهێنانی کلاس و کۆبەند لە پایثوندا. برنامەنووسیی کۆبەندی ئامرازێکی هێزمندنە بۆ ڕێکخستنی کۆد و باشترکردنی دووبار

  • Web development tutorial A-0

    فێربوونی بەرنامەسازی ماڵپەڕ A-0

    لە سفرەوە بۆ پڕۆ: گەشتی تەواوی پەرەپێدانی وێب

    بینینی بابەت
  • Differences Between Android and iOS

    جیاوازی نێوان ئەندرۆید و ئای ئۆ ئێس

    بەرنامەسازی ئەپی مۆبایل: جیاوازی نێوان ئەندرۆید و ئای ئۆ ئێس و باشترین پراکتیزەکان

    بینینی بابەت
  • Game Development with Unity

    پەرەپێدانی یاری بە بەکارهێنانی یونیتی

    پەرەپێدانی یاری لەگەڵ یونیتی: لە بیرۆکەوە بۆ بەرهەمی تەواو

    بینینی بابەت
  • Mastering Programming with Python

    شارەزایی لە بەرنامەسازی بە بەکارهێنانی پایتۆن

    شارەزابوون لە بەرنامەسازی بە پایتۆن: پڕۆژە و ئامۆژگاری دەستی

    بینینی بابەت
  • What are the benefits of websites

    سوودەکانی ماڵپەڕەکان چین؟

    سوودەکانی ماڵپەڕی کۆمپانیاکان

    بینینی بابەت
  • Web development tutorial A-1

    فێربوونی بەرنامەسازی ماڵپەڕ A-1

    وانەی یەکەم: فێربوونی HTML لە سفرەوە - پێشەکییەکی گشتگیر لەگەڵ ڕێکخستنی ئامرازەکان

    بینینی بابەت
  • Web development tutorial A-2

    فێربوونی بەرنامەسازی ماڵپەڕ A-2

    وانەی دووەم: فێربوونی HTML لە سفرەوە - تاگە پێشکەوتووەکان و خشتەکان

    بینینی بابەت
  • Artificial Intelligence Qwen AI

    ئینتەلیکەنی ئارەزویی Qwen AI

    Qwen AI مۆدێلی زانستی ئارەزویییە چەندکارەیە کە زمانەکان پشتگیری دەکات و کارە خەیاڵی و کاراکەرەکان دەڕێژێت

    بینینی بابەت