You are on page 1of 4

‫تلخيص ال ‪OOP‬‬

‫ايه هي ‪ OOP‬وايه هي المبادئ األساسية لها؟‬ ‫‪-‬‬


‫✓ وهي طريقة في البرمجة ‪ Object Oriented Programming‬بتخلي الكود اللي انا بكتبه‬
‫سهل االستخدام وأقدر استخدمه اكتر من مرة بدون تكرار للكود‪.‬‬
‫✓ مبادئها‪:‬‬
‫▪ ‪Encapsulation‬‬
‫▪ ‪Inheritance‬‬
‫▪ ‪Polymorphism‬‬
‫▪ ‪Abstraction‬‬
‫ايه هي ال ‪Encapsulation‬؟‬ ‫‪-‬‬
‫✓ هو عبارة عن أسلوب يمكن اتباعه إلخفاء البيانات األساسية في الكالس‪ ،‬أي إلخفاء‬
‫الخصائص الموجودة فيه وجعل الكالسات األخرى قادرة على التعامل مع هذه الخصائص‬
‫فقط من خالل دوال يقوم بإنشائها المبرمج األساسي للكالس‪.‬‬
‫ايه هي ال ‪Inheritance‬؟‬ ‫‪-‬‬
‫ً‬
‫✓ هي عملية إنشاء كالس جديد بنائا على كالس سابق‪ ،‬فتمكننا من إعادة استخدام‬
‫أكواد مكتوبة سابقاً‪ ،‬وتعديل بعضها أو إضافة خصائص جديدة بدل من إعادة كتابتها كل‬
‫مرة‪ ،‬وتسمى الفئة ‪ Class‬التي نرث منها باألب ‪ Parent‬والتي نُورِّ ُ‬
‫ث إليها باالبن ‪.Son‬‬
‫ايه هي ال ‪Polymorphism‬؟‬ ‫‪-‬‬
‫✓ تعني أن الكائن يمكن أن يتخذ أكثر من شكل‪ ،‬والفكرة ببساطة أن مجموعة كائنات‬
‫ترث خصائصها من أب واحد‪ ،‬لكن كل منهم يقوم بتعديل هذه الخصائص لـ تقوم بأمر‬
‫مختلف‪.‬‬
‫ايه هي ال ‪Abstraction‬؟‬ ‫‪-‬‬
‫✓ هو أسلوب يستخدم إلخفاء تفاصيل تنفيذ البرنامج ويستخدم لتسهيل كتابة األوامر‬
‫وتنفيذ ما تريد دون الحاجة إلى معرفة كافة التفاصيل إذاً يجعلك تتعامل مع األشياء‬
‫بسطحية‪.‬‬
‫ما الفرق بين ‪ Overloading‬و‪Overriding‬؟‬ ‫‪-‬‬
‫✓ ‪ Overloading‬تعني تعريف أكثر من دالة أو كونستركتور لهم نفس االسم ولكن‬
‫مختلفون في عدد أو نوع البارامترات أي تجهيز عدة دوال لهم نفس االسم وهذه الدوال‬
‫تكون متشابهة من حيث الوظيفة ولكن مختلفة قليال ً في األداء‪.‬‬
‫✓ ‪ Overriding‬تعني تعريف الدالة التي ورثها الـ ‪ Subclass‬من الـ ‪ Superclass‬من جديد‬
‫حيث تكون مشابهة للدالة الموروثة حيث لها نفس االسم و النوع و عدد البارامترات‬
‫لكن محتواها مختلف بهدف إتاحة الفرصة للـ ‪ Subclass‬ليعرف الدوال حسب حاجته‪.‬‬
‫يعني ايه ‪ Constructor‬وايه هي انواعه؟‬ ‫‪-‬‬
‫✓ هو عبارة عن دالة لها نوع خاص‪ ،‬يتم استدعائها أثناء إنشاء كائن لتوليد قيم أولية‬
‫للخصائص الموجودة فيه أي أنه ال يمكن إنشاء كائن من كالس إال من خالل‬
‫‪.Constructor‬‬
‫✓ انواعه‪:‬‬
‫▪ ‪ :Parameterized constructors‬بداخله متغير أو أكثر‪.‬‬
‫▪ ‪ :Parameterless constructors‬يقوم بإنشائه المترجم من تلقاء نفسه‪.‬‬
‫هل ينفع يكون عندي اكتر من ‪Constructor‬؟‬ ‫‪-‬‬
‫✓ نعم يمكن انشاء أكثر من واحد‪.‬‬
‫هل ينفع يكون ‪ Constructor‬نوعه ‪ synchronized & final & abstract & Static‬؟‬ ‫‪-‬‬
‫✓ ال ال يسمح ان ‪final or synchronized، abstract،static‬‬
‫هل ينفع يكون ‪ Constructor‬نوعه ‪Private‬؟‬ ‫‪-‬‬
‫✓ ايوه ينفع بس وقتها مش هنقدر نعمل كائن من الكالس دا‪.‬‬
‫ما هو ال ‪copy constructor‬؟‬ ‫‪-‬‬
‫✓ يستخدم إلنشاء كائن جديد باستخدام كائن قديم ويبقي نسخة من القديم‪.‬‬
‫ما الفرق بين ‪ constructor‬و‪methods‬؟‬ ‫‪-‬‬
‫✓ ‪ constructor‬يستخدم لتهيئة ال ‪ object‬وال يرجع أي قيم‬
‫✓ ‪ Methods‬فتقوم بوصف المتغيرات وترجع قيم‪.‬‬
‫ما هو ال ‪Destructor‬؟‬ ‫‪-‬‬
‫✓ هو دالة في كالس تقوم بتعطيل الذاكرة المخصصة ألحد الكائنات (تدمير الكائنات) يتم‬
‫ً‬
‫مسبوقا برمز (~)‪.‬‬ ‫تعريفه بنفس االسم مثل اسم الكالس‪،‬‬
‫ما الفرق بين ال‪ constructor‬وال ‪destructor‬؟‬ ‫‪-‬‬
‫‪Destructor‬‬ ‫‪Constructor‬‬
‫✓ تدمير أماكن الكائنات في الذاكرة‪.‬‬ ‫✓ توليد الكائنات في الذاكرة‪.‬‬
‫✓ ال يستخدم معامالت‪.‬‬ ‫✓ يستخدم معامالت‪.‬‬
‫✓ يحتوي الكالس على واحد فقط‪.‬‬ ‫✓ يحتوي الكالس على واحد او أكثر‪.‬‬
‫يعني ايه ‪Interface‬؟‬ ‫‪-‬‬
‫✓ هي عبارة عن اتفاقية ما بين مبرمجه وما بين المبرمج اللي هيستخدم ال‪Interface‬‬
‫واالتفاقية بتقول انه لو عاوز يستخدم الـ ‪Functions‬اللي في الـ ‪Interface‬الزم يكتب‬
‫بيديه الكود بتاع الـ ‪Functions‬دي‪.‬‬
‫ايه الفرق بين ال ‪ interface‬و‪class abstract‬؟‬ ‫‪-‬‬
‫✓ الدوال في ‪ interface‬مجردة كليًا ‪ Full abstract‬ال تحوي أي ‪ implementation‬أي أنها‬
‫ال تقوم بتنفيذ شيء حتى يرثها الصف االبن ويقوم بعمل ‪.override‬‬
‫✓ في حين ‪ abstract class‬يمكن أن يحوي على دوال تقوم بتنفيذ سلوك افتراضي ثم‬
‫ضا بعملية ‪.override‬‬ ‫يأتي الصف االبن إما أن ينفذ هذا السلوك نفسه أو سلوك آخر أي ً‬
‫ما هو ال‪ abstract class‬؟‬ ‫‪-‬‬
‫✓ هو الكالس الذي يحتوي على كلمة ‪ abstract‬في تعريفه او يحتوي على دوال تم‬
‫تعريفها ك ‪ Abstract method‬فيصبح هو ايضا ‪ abstract class‬وال يمكن انشاء ‪objects‬‬
‫منه وانما يتم توريثه لكالس آخر‪ ،‬واعادة تعريف كل ال ‪.abstract methods‬‬
‫يعني ايه ‪Abstract method‬؟‬ ‫‪-‬‬
‫✓ هي ‪ Method‬مجردة من أي ‪ implementation‬وتكون في ‪ Abstract Class‬والزم اكتب‬
‫الكود بتاعها بإيدى فى أي ‪ Class‬هيورث منه‪.‬‬
‫يعني ايه ‪ diamond problem‬وايه حلها؟‬ ‫‪-‬‬
‫✓ مشكله ناتجة عند التوريث المتعدد فاذا كان لدينا )‪ )A class & B class & C class‬حيث‬
‫ان ‪ C‬يرث من ‪A ،B‬يرث من ‪ C‬فاذا أراد الكالس ‪ A‬ان يرث من ‪ B‬أيضا فتنتج المشكلة‬
‫وهي تكرار األوامر حيث ان ‪ C‬يحتوي على أوامر ‪ B‬ألنه يرث منه وعندما ورث ‪ A‬من ‪C‬‬
‫فهو قد ورث أوامر ‪ B‬بشكل غير مباشر فعدما يطلب ‪ A‬الوراثة من ‪ B‬يحدث تكرار لألوامر‪.‬‬
‫✓ لحل المشكلة ابتكار المطورون نوع جديد يشبه الكالس العادي ويسمح لنا بتطبيق‬
‫مبدأ تعدد الوراثة الذي يعتبر شيء مهم جداً في لغات البرمجة وهذا النوع الجديد‬
‫يسمى ‪.interface‬‬
‫‪ -‬الفرق بين ‪ reference type‬و‪types value‬؟‬
‫‪Types Value‬‬ ‫‪Reference Type‬‬
‫✓ يتم تخزينها في الذاكرة في ‪.Stack‬‬ ‫✓ يتم تخزينها في الذاكرة في ال ‪.Hub‬‬
‫✓ سعة التخزين محددة في اللغة‪.‬‬ ‫✓ سعة التخزين يحددها المبرمج‪.‬‬
‫✓ مثل‪.Int & string & double :‬‬ ‫✓ مثل‪Class & interface & Array :‬‬
‫هل ال ‪ destructor‬ليس له ‪overload‬؟‬ ‫‪-‬‬
‫✓ نعم ألنه ال يأخذ ‪.parameters‬‬
‫ما هي ال ‪friend function‬؟‬ ‫‪-‬‬
‫✓ مفهوم موجود فقط في لغة ‪ c++‬ألنه يعتبر مفهوم خاطئ حيث يتم تعريف الدالة خارج‬
‫الكالس وهذا ليس صحيح حيث انه ينتهك مفهوم التغليف‪.‬‬
‫ايه هما ال ‪access modifiers‬؟‬ ‫‪-‬‬
‫✓ هو عبارة عن ‪ Keyword‬توضع قبل ال ‪ Method‬أو ‪ Object‬أو ‪ Constructor‬لتعريف‬
‫مستوى الوصول‪ ،‬حيث تسمح لك بتطبيق مبدأ الـ ‪ ،Encapsulation‬والجدول التالي‬
‫يحتوي على ال ‪.Access Modifiers‬‬
‫‪public‬‬ ‫الكالس أو الدالة أو المتغير المعرف كـ ‪ public‬يمكن الوصول إليه مباشر ًة‪.‬‬ ‫‪-‬‬
‫الدالة أو المتغير المعرف كـ ‪ protected‬يمكن الوصول إليه فقط من الكالسات ‪protected‬‬ ‫‪-‬‬
‫الموجودة في نفس الـ ‪ package‬أو من الكالسات التي ترث منه‪.‬‬
‫‪private‬‬ ‫هو اعلي مستوى من الحماية حيث ان المتغيرات والدوال المعرفة كـ‬ ‫‪-‬‬
‫‪ private‬يمكن الوصول لها فقط من داخل الكالس الذي المعرفة فيه‪.‬‬
‫‪internal‬‬ ‫الدالة أو المتغير المعرف كـ ‪ internal‬يمكن الوصول إليه فقط من الكالسات‬ ‫‪-‬‬
‫الموجودة في نفس الـ ‪ package‬فقط‪.‬‬
‫ما هو ال ‪Namespace‬؟‬ ‫‪-‬‬
‫✓ عبارة عن ‪ Keyword‬تستخدم لتعريف ‪ Scope‬هذا ال ‪ Scope‬هو حاوي ‪ Container‬ل‬
‫‪ Class‬او مجموعه من ال ‪.Classes‬‬
‫ايه الفرق بين ‪ protected‬و‪internal‬؟‬ ‫‪-‬‬
‫✓ ‪ Protected‬يمكن الوصول إليه فقط من الكالسات الموجودة في نفس الـ ‪ package‬أو‬
‫من الكالسات التي ترث منه‪.‬‬
‫✓ ‪ Internal‬يمكن الوصول إليه فقط من الكالسات الموجودة في نفس الـ ‪ package‬فقط‪.‬‬
‫قم بكتابة كود عبارة عن ‪ function‬بترجع ‪primary number‬؟‬ ‫‪-‬‬
‫▪‬ ‫;‪import java.util.Scanner‬‬
‫▪‬ ‫{ ‪public class PrimeExample3‬‬
‫▪‬ ‫{ )‪public static void main(String[] args‬‬
‫▪‬ ‫;)‪Scanner s = new Scanner(System.in‬‬
‫▪‬ ‫;)" ‪System.out.print("Enter a number :‬‬
‫▪‬ ‫;)(‪int n = s.nextInt‬‬
‫▪‬ ‫{ ))‪if (isPrime(n‬‬
‫▪‬ ‫;)"‪System.out.println(n + " is a prime number‬‬
‫▪‬ ‫{ ‪} else‬‬
‫▪‬ ‫;)"‪System.out.println(n + " is not a prime number‬‬
‫▪‬ ‫}‬
‫▪‬ ‫}‬
‫▪‬ ‫{ )‪public static boolean isPrime(int n‬‬
‫▪‬ ‫{ )‪if (n <= 1‬‬
‫▪‬ ‫;‪return false‬‬
‫▪‬ ‫}‬
‫▪‬ ‫{ )‪for (int i = 2; i < Math.sqrt(n); i++‬‬
‫▪‬ ‫{ )‪if (n % i == 0‬‬
‫▪‬ ‫;‪return false‬‬
‫▪‬ ‫}‬
‫▪‬ ‫}‬
‫▪‬ ‫;‪return true‬‬
‫▪‬ ‫}‬
‫▪‬ ‫}‬
‫اذكر ‪ 3 objects‬و‪ 3class‬في الغرفة دي؟‬ ‫‪-‬‬
‫✓ الكرسي كائن من كالس كرسي‪.‬‬
‫✓ الترابيزة كائن من كالس ترابيزة‪.‬‬
‫✓ الباب كائن من كالس باب‪.‬‬
‫ايه الفرق بين ‪ const‬و‪static‬؟‬ ‫‪-‬‬
‫✓ ‪ Static‬يستخدم للمتغيرات او الدوال اللي استدعاؤه باسم الكالس وبدوء انشاء كائن‪.‬‬
‫✓ ‪ Const‬يستخدم مع المتغيرات المعروف قيمتها ولن تتغير مثل سرعه الضوء‪.‬‬
‫ايه الفرق بين ‪ extend‬و‪implementation‬؟‬ ‫‪-‬‬
‫✓ ‪ Extend‬هو التوريث في لغة الجافا اما ‪ implementation‬هو التنفيذ ويستخدم عندما‬
‫ينفذ ‪ class‬أوامر ‪ interface‬او اكثر‪.‬‬
‫ما هو ‪Enumerator‬؟‬ ‫‪-‬‬
‫✓ هو مجموعة من القيم الثابتة المرتبطة ببعضها‪.‬‬
‫إيه الفرق بين ‪ getter‬و‪setter‬؟‬ ‫‪-‬‬
‫✓ ال ‪ Setter‬هي دالة تكون ‪ void‬ولها بارامتر وتستخدم إلستقبال المعلومات‪.‬‬
‫✓ ال ‪ Getter‬يكون لها ‪ return type‬وتستخدم للحصول على المعلومات‪.‬‬
‫ما الفرق بين ال‪ object‬وال‪ class‬؟‬ ‫‪-‬‬
‫✓ ‪ :Class‬الفئة هي عبارة عن نموذج أو وصف للكائن (‪.)blueprint‬‬
‫✓ ‪ :Object‬الكائن هو عبارة عن نسخة من هذه الفئة (‪.)instance‬‬
‫ما هو ال‪ pure virtual function‬؟‬ ‫‪-‬‬
‫✓ هي دالة تستخدم في الكالس االب فقط مثل ‪.overriding‬‬
‫ما هو ال‪ static members‬او ‪Static method‬؟‬ ‫‪-‬‬
‫✓ هي ال ‪ Methods‬او ال ‪ Attributes‬بقدر انادى عليها من اسم ال ‪.Class‬‬
‫اذكر كيفية استدعاء ‪Static method‬؟‬ ‫‪-‬‬
‫✓ بكتابة اسم الكالس ثم (‪ ).‬ثم اسم الدالة مثل(‪)ClassName.methodName‬‬
‫ما هو الفرق بين ‪ delegate‬و‪Event‬؟‬ ‫‪-‬‬
‫ً‬
‫✓ ‪ Event‬هو الحاجة اللي ال ‪ User‬بيعملها وبناءا عليها ببقى عاوز انفذ كود‪ ،‬زي لو ال‬
‫‪ User‬داس على زر فى ال ‪ Keyboard‬ده يسمى ‪.Event‬‬
‫✓ ‪ Delegate‬بتربط ال ‪ Function‬اللي انا عاوزها تتنفذ بال ‪ Event‬اللي عاوزها تتنفذ فيه‪.‬‬
‫ما المقصود ب ‪Applet‬؟‬ ‫‪-‬‬
‫✓ هو برنامج مكتوب بصورة معينة بلغة ال ‪ java‬تجعله قابل للتضمين داخل صفحة ‪.HTML‬‬

You might also like