تعليم لغة الجافا java الدرس 13

السلام عليكم ورحمة الله وبركاته 


طب احنا كنا قلنا ان اى ميثود ليها parameter list يعنى بتاخد متغيرات (معاملات) وممكن بردة تكون مش بيدخل ليها اى متغيرات تمام كدا عاوزين بقى نزود حاجة صغيرة اوى وهى ان انا لما بمرر المتغيرات على الميثود بتاعتى دا العملية دى ليها نوعين
• Passing by value
• Passing by reference
طب دا كلام زى الفل بس مش عارف يعنى اية؟...............اقولك بص يا سيدى
بالنسبة للpassing by value دا بالظبط زى اللى فى المثال اللى فات دا فانا هنا بخلى الميثود بتاعتى تاخد القيمة اللى موجودة فى ال متغير اللى اسمة x اللى هى 5 وتتعامل معاها يعنى بتاخد القيمة اللى فى المتغيرا دا ودا بيتطبق على كل ال primitive variables
اما ال passing by reference فدا بقى يا بوب بخلى الميثود بتاعتى تاخد reference لل data يعنى انا لو عندى متغير اسمة o والمتغير دا non primitive يعنى object زى ما قولنا قبل كدا لو مررتة للميثود بتاعتى هى مش هتاخدة لان هو اصلا مفيش فية قيمة هو عبارة عن عنوان ل object فى ال heap محدش يستعجل احنا فى الدرس الجاى دا هنعرف كويس يعنى اية heap بس المهم دلوقتى اننا نعرف ان فى ال
In passing by reference the caller gives the called method direct access to caller’s data
تانى هنقول ان الشخص اللى بيستدعى الميثود بيعطيها عنوان مباشر لما تدخل علية توصل للبيانات بتاعتة وكمان الميثود دى بتقدر تعدل فى البيانات دى
وال passing by reference بيشتغل مع ال non primitive data types

طب قبل ما نخلص الدرس الجميل دا عاوزين نتكلم عن حاجة مهمة اوى هى ال method overloading دى بقى اللى هى انى اعمل 2 methods بنفس الاسم ونفس ال access modifier ونفس ال return type بس بغير فى ال parameter list دا مثال على ال method over loading



حصرياً منتديات ستار شباب سلسة حصرياً منتديات ستار شباب سلسة

اول method بتاخد منغيرات من نوع int والتانية بتاخد متغيرات من نوع double يعنى هما كدا مختلفين عن بعض طب يجى واحد يقولى طب هو ال compiler هيفرق بينهم ازاى ?
اقولك من خلال ال parameters يعنى لما اقولة add(2.5,4.7); هو على طول هيعرف ان انا عاوز استخدم التانية وبردة لما اقولة add(8,7); هو هيعرف انى اقصد الاولى لان انا مدخلة بيانات integer

طب نتكلم عن حاجم تانية وهى ال method recursion ودى بقى تعنى استدعاء الدالة لنفسها سواء بطريقة (مباشرة او غير مباشرة ) عن طريقة method تانية طب دى مش هنفهمها الا بمثال

حصرياً منتديات ستار شباب سلسة حصرياً منتديات ستار شباب سلسة

دا برنامج صغير اوى كدا بيطبع ال factorial بتاع الارقام من 1 الى 10 يعنى المضروب بتاعهم وهو بيعتمد فى الاساس على ال recursion ودا هيكون شكل الخرج بتاع البرنامج

حصرياً منتديات ستار شباب سلسة حصرياً منتديات ستار شباب سلسة


دى رسمة بسيطة كدا هنفهم منها يعنى اية recursion

حصرياً منتديات ستار شباب سلسة حصرياً منتديات ستار شباب سلسة

هو اصلا مضروب اى رقم هو عبارة عن حاصل ضرب جميع الارقام اللى قبلة يعنى لو عاوز اجيب مضروب ال 4 يبقى هيكون كدا 4*3*2*1 يعنى هتكون قيمتها 24 فهنا بقى علشان اجيب مضروب ال5 مثلا يبقى بضرب ال5 فى مضروب ال 4 وعلشان اجيب قيمة مضروب ال 4 يبقى هتساوى 4 فى مضروب ال3 وطبعا علشان اجيب مضروب ال3 هتساوى 3 فى مضروب ال 2 وضروب ال2 يساوى 2 فى مضروب ال 1 وطبعا احنا عارفين ان مضروب ال 1 يساوى 1 فهيبدا يرجع تانى ويعوض عن قيمة مضروب الواحد ويجيب منة مضروب ال 2 وهكذا حتى يصل الى مضروب ال 5 وهيطلع قيمتة 120 زى ما فى الرسمة
طبعا احنا لو حاولنا نعملها من غير ال recursion هتكون رخمة اوى وهنكتب كلام كتير وهتكون كفائتها مش كويسة

وبكدا بقى يبقى خلص الدرس دا الحمد لله بس هيا الميثود مخلصتش لسا طبعا باقى حاجة اسمها method overriding هنكملها بس بعد ما ندخل فى ال object oriented programming هنبقى نكملها ان شاء الله
 


الإبتساماتإخفاء

تعليم جافا
علوم و تقنيات