Oop
Oop
## Core Principles
1. *Encapsulation*
- Bundling data (attributes) and methods that operate on that data into a single
unit (class)
- Controlling access via public/private/protected modifiers
- Example: Getters/setters to control attribute access
2. *Abstraction*
- Hiding complex implementation details
- Showing only essential features
- Example: Abstract classes/interfaces define what an object does without how
3. *Inheritance*
- Creating new classes from existing ones
- Promotes code reuse and hierarchical relationships
- Example: Child class inherits from parent class
4. *Polymorphism*
- "Many forms" - ability to present the same interface for different underlying
forms
- Method overriding (runtime polymorphism)
- Method overloading (compile-time polymorphism)
## Key Concepts
- *Class*: Blueprint for creating objects
- *Object*: Instance of a class
- *Constructor*: Special method for object initialization
- *Interface*: Contract of methods a class must implement
- *Abstract Class*: Cannot be instantiated, may contain implemented methods
- *Composition*: Building complex objects from simpler ones ("has-a" relationship)
## SOLID Principles
1. *S*ingle Responsibility - One class, one purpose
2. *O*pen/Closed - Open for extension, closed for modification
3. *L*iskov Substitution - Subclasses should be substitutable for parent classes
4. *I*nterface Segregation - Many client-specific interfaces
5. *D*ependency Inversion - Depend on abstractions, not concretions
## المبادئ الأساسية
*) (Encapsulationالتغليف* 1.
تجميع البيانات (الخصائص) والوظائف التي تعمل عليها في وحدة واحدة (كالس) -
public / private / protectedالتحكم في الوصول عبر ُمعِّدالت -
للتحكم في الوصول إلى الخصائص settersو gettersمثال :استخدام -
SOLIDمبادئ ##
كل كالس له غرض واحد (Single Responsibility)*:مبدأ المسؤولية الواحدة* 1.
مفتوح للتوسيع ،مغلق للتعديل (Open/Closed)*:مبدأ المغلق/المفتوح* 2.
الكالسات االبن يجب أن تحل محل (Liskov Substitution)*:مبدأ لسكوف لالستبدال* 3.
الكالسات الأب
واجهات متعددة لكل عميل (Interface Segregation)*:مبدأ فصل الواجهات* 4.
االعتماد على التجريد وليس (Dependency Inversion)*:مبدأ انعكاس االعتمادية* 5.
التفاصيل
:مثال في جافا
java
{ public class Singleton
;private static Singleton instance
java
{ class Animal
{ )(void sound
;)"System.out.println("Animal sound
}
}
:مثال
java
{ class Car
;private Engine engine
{ )(void start
;)(engine.start
}
}