مقدمة شاملة إلى البرمجة الكائنية (OOP) بلغة Python: مفاهيم وأمثلة عملية
مقدمة إلى البرمجة الكائنية (OOP): المفاهيم الأساسية مع أمثلة عملية
البرمجة الكائنية (Object-Oriented Programming) هي نموذج برمجي يعتمد على تنظيم الكود حول الكائنات، حيث تعبر هذه الكائنات عن كيانات تحتوي على بيانات وسلوكيات محددة. في هذا المقال، سنشرح المفاهيم الأساسية للبرمجة الكائنية، مثل الكائنات، الكلاسات، التغليف، الوراثة، وتعدد الأشكال، مع أمثلة برمجية توضيحية بلغة Python.
1. الكائنات (Objects)
الكائن هو العنصر الأساسي في البرمجة الكائنية. يمثل الكائن كيانًا يحتوي على خصائص وسلوكيات. على سبيل المثال، يمكن أن يكون الكائن سيارة تحتوي على خصائص مثل العلامة التجارية والطراز، ويمكنه القيام بسلوكيات مثل التشغيل أو الإيقاف.
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def start(self):
print(f"The {self.brand} {self.model} is starting.")
my_car = Car("Toyota", "Corolla")
my_car.start() # Output: The Toyota Corolla is starting.
في هذا المثال، my_car
هو كائن تم إنشاؤه باستخدام الكلاس Car
، ويعبر عن سيارة ذات علامة تجارية معينة وسلوك تشغيل.
2. الكلاسات (Classes)
الكلاس هو قالب يستخدم لإنشاء الكائنات. يحدد الكلاس الخصائص والسلوكيات التي يمتلكها الكائن.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
# إنشاء كائن
person1 = Person("Alice", 30)
person1.greet() # Output: Hello, my name is Alice and I am 30 years old.
في هذا المثال، Person
هو كلاس يمثل شخصاً، ويمكن استخدامه لإنشاء كائنات تمثل أشخاصاً مختلفين.
3. التغليف (Encapsulation)
التغليف هو إخفاء البيانات داخل الكلاس بحيث لا يمكن الوصول إليها مباشرة من خارج الكلاس. يتم التحكم في الوصول إلى البيانات عبر طرق مخصصة.
class BankAccount:
def __init__(self, balance):
self.__balance = balance # خاصية مخفية
def deposit(self, amount):
self.__balance += amount
def get_balance(self):
return self.__balance
# استخدام الكلاس
account = BankAccount(1000)
account.deposit(500)
print(account.get_balance()) # Output: 1500
في هذا المثال، تم إخفاء خاصية __balance
، ولا يمكن الوصول إليها إلا عبر الطرق deposit
و get_balance
.
4. الوراثة (Inheritance)
الوراثة هي ميزة تتيح إنشاء كلاس جديد يعتمد على كلاس موجود مسبقاً، مما يتيح للكلاس الجديد وراثة الخصائص والسلوكيات من الكلاس الأصلي وإضافة ميزات جديدة.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"
# إنشاء كائنات
dog = Dog("Buddy")
cat = Cat("Whiskers")
print(dog.speak()) # Output: Buddy says Woof!
print(cat.speak()) # Output: Whiskers says Meow!
في هذا المثال، Dog
و Cat
هما كلاسات فرعية (Subclasses) ترث من الكلاس الأساسي Animal
.
5. تعدد الأشكال (Polymorphism)
تعدد الأشكال يعني أن نفس الطريقة يمكن أن يكون لها سلوكيات مختلفة بناءً على الكائن الذي يستدعيها. الكائنات المختلفة يمكن أن تستجيب لنفس الطريقة بطرق مختلفة.
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
# استخدام تعدد الأشكال
shapes = [Rectangle(5, 10), Circle(7)]
for shape in shapes:
print(shape.area())
# Output:
# 50 (مساحة المستطيل)
# 153.86 (مساحة الدائرة)
في هذا المثال، تم استخدام تعدد الأشكال من خلال استدعاء نفس الطريقة area
على كائنات مختلفة (مستطيل ودائرة) حيث تعطي نتائج مختلفة بناءً على نوع الكائن.
الخاتمة
البرمجة الكائنية (OOP) تساعد في تنظيم الكود بشكل أكثر فعالية وقابلية لإعادة الاستخدام. باستخدام مفاهيم مثل الكلاسات، الكائنات، التغليف، الوراثة، وتعدد الأشكال، يمكنك كتابة برامج أكثر تنظيماً وقابلة للصيانة.
اترك تعليقاً