تمارين بكالوريا في البرمجة الكائنية OOP
البرمجة الكائنية (Object-Oriented Programming – OOP) من أهم نماذج البرمجة المستخدمة في تطوير التطبيقات. هذا الدرس يقدم تمارين شاملة حول مفاهيم OOP الأساسية: الصنف (Class)، الكائن (Object)، الوراثة (Inheritance)، التغليف (Encapsulation)، وتعدد الأشكال (Polymorphism).
أولا: مفهوم الصنف والكائن
الصنف (Class) هو نموذج أو قالب لإنشاء كائنات. الكائن (Object) هو实例 من الصنف (Instance).
مثال 1 (بايثون): إنشاء صنف “طالب” مع خصائصه وطرقه.
class Student:
def __init__(self, name, age, grade):
self.name = name
self.age = age
self.grade = grade
def display_info(self):
print(f"Name: {self.name}, Age: {self.age}, Grade: {self.grade}")
def is_passing(self):
return self.grade >= 10
# إنشاء كائن
s1 = Student("Ahmed", 17, 15)
s1.display_info()
print(s1.is_passing())
ثانيا: التغليف (Encapsulation)
التغليف يعني إخفاء البيانات الداخلية للصنف ومنع الوصول المباشر إليها، مع توفير دوال للوصول إليها (Getters/Setters).
مثال 2: صنف “BankAccount” مع تغليف.
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.__balance = balance # private attribute
def deposit(self, amount):
if amount > 0:
self.__balance += amount
def withdraw(self, amount):
if 0 < amount <= self.__balance:
self.__balance -= amount
def get_balance(self):
return self.__balance
ثالثا: الوراثة (Inheritance)
الوراثة تسمح لصنف بابن (Child) أن يرث خصائص وطرق صنف أب (Parent).
مثال 3: صنف "Car" يرث من صنف "Vehicle".
class Vehicle:
def __init__(self, brand, year):
self.brand = brand
self.year = year
def start(self):
print("Vehicle is starting...")
class Car(Vehicle):
def __init__(self, brand, year, doors):
super().__init__(brand, year)
self.doors = doors
def honk(self):
print("Beep beep!")
رابعا: تعدد الأشكال (Polymorphism)
تعدد الأشكال يعني أن نفس الطريقة يمكن أن تعمل بطرق مختلفة في أصناف مختلفة.
مثال 4:
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
# تعدد الأشكال
animals = [Dog(), Cat()]
for a in animals:
print(a.speak())
تمارين بكالوريا
- أنشئ صنف "Rectangle" له خصائص الطول والعرض، وطرق لحساب المساحة والمحيط.
- أضف تغليفا للصنف السابق (خصائص خاصة مع getters/setters).
- أنشئ صنف "Square" يرث من Rectangle ويعيد تعريف طريقة المساحة.
- ما الفرق بين الوراثة العامة (public) والوراثة الخاصة (private) في لغات مثل C++ و Java؟
- اشرح مفهوم تعدد الأشكال (Polymorphism) مع مثال في بايثون.
- أنشئ صنف "Library" يحتوي على قائمة من الكتب، وأضف طرقا لإضافة كتاب وحذفه والبحث عنه.
خلاصة
البرمجة الكائنية (OOP) نموذج برمجي قوي يساعد في تنظيم الكود وإعادة استخدامه. المفاهيم الأساسية: الصنف والكائن، التغليف، الوراثة، وتعدد الأشكال. إتقان هذه المفاهيم ضروري لمبرمجي اليوم.
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.