-->
recent

آخر الأخبار

recent
random
جاري التحميل ...
random

يعني ايه method في الجافا


السلام عليكم -- احنا عملنا االمقال دا علشان الناس عندها مشكله فى ال functions او ال methods او ال procedure او اى كان اسمها الى بيختلف من لغه للتانيه فالاسم مش هيفرق معانا -- بس اعرف انها فى الجافا بتتسمى method دا اولا
ثانيا : بص يا سيدى ال method فيدتها حجتين :
1- انها بتنظم شكل البرنامج بتعنا وبتقسمه بطريقة كويسه
2- انها بتوفر علينا كتابه كود اكتر من مره -- تعالى بقى نشرح ازاى الاتنين دول بيحصلو
هنشرح رقم 2 الاول وبعدين هتفهم رقم 1 ان شاء الله --- بص لو انت عاوز تطبع جمله "hello world "
هتقولى هكتب : System.out.println("Hello world")
يعنى كدا ؟
System.out.println("Hello world")
- اه كدا
-طيب تعالى اقولك على طريقة تانيه توفر عليك دا كله ؟
-بص انت هتعمل حاجة اسمها method وهعتبر انك عارف بتتعمل ازاى - المهم هتعمل وهتسميها sayHello وتكتب جواها System.out.println("Hello world") ولما تحب تطبع hello world خلاص استدعى ال method بأسمها
يعنى هعمل كدا ()sayHello ؟
-اه هتعمل كدا ودا هيطبعلك hello world -- شايف انت اختصرت اد ايه من الكود بطل ما كنت بتكتب System.out.println() لا انت هتكتب sayHello
طب ايه الفرق ما هى ما فرقكتش كتير
-حلو - هى ما فرقتش كتير فعلا بس بص كدا على الكود دا هو كود لوب ومش لازم تفهمو لو لسه ما وصلتش للوب
for (int i = 0; i < 5; i++) {
System.out.println("hello");
}
for (int j = 0; j < 5; j++) {
System.out.println(i);
}
-بص بقى لو قولتلك انا عاوزك تكتب الكود دا 5 مرات هتعمل ايه ؟
-هل هتكتبه خمس مرات ولا تكتبه مره واحده فى method وتستدعى الميثود بأسمها 5 مرات وخلاص ؟
-طب تخيل لو كان 100 سطر عاوز تكررهم هتعمل ايه ؟
-فدلوقتى ال mehod فدتنا فى حجتين اول حاجة:
1- وفرت وقت بدل ما كنا هنكتب الكود كذا مره هنكتبه مره وحده بس
2- نظمت الشغل بتاعنا -كل مجموعه اكواد فى mehod معينه - وانت مجرد بتنادى على الmehod دى لان كل ما الكود بيكتر اما بيحصل error بيبقى صعب عليك تعرف هو فين و كمان بيبقى صعب عليك تصلحه
----------------------------------------------------------------------------------------------------------------------------------------------------
يارب الكلام الى فوق يكون واضح
----------------------------------------------------------------------------------------------------------------------------------------------------
تعالى نشوف ايه الى بيحصل لما بتستدعى ال mehod
بص قبل ما نعرف -- لازم انت تعرف ان ال main ما هى الا method مش بترجع حاجة (void)البرنامج بيبدا يتنفذ من عندها حلو ?
فلو انت استدعيت اى method تانيه جوه ال Main البرنامج بيقف ويروح لل method الى انت استدعدها دى وينفذها ويروح راجع تانى لل main ويأما بيرجع بقيمه او يرجع فاضى ودى حاجة اسمها return type
ايه ال return type دا ؟
- بص يا سيدى هنفترض مثلا انك عامل method بتجمع رقمين زى دى:
public void sum1() {
int x = 4 + 3;
System.out.println(x);
}
-شايف كلمه void دى
اه
-دى معناها ان ال method مش هترجع حاجة
يعنى؟
-يعنى هيتنفذ الى فيها والبرنامج يرجع لل Main تانى ويكمل من غير ما يشيل معاه قيمه
برضه مش فاهم طب تعالى نشرح نفس ال method بس نخليها بترجع قيمه
public int sum2() {
int x = 4 + 3;
return x;
}
-بص بقى شايف الفرق ؟
برضو لسه ما وصلتش
-طب تعالى نعملهم call
public static void main () {
int var1 = sum1(); // error you should call it like this -> sum1();
int var2 = sum2();
}
-بص بقى ال varible الى اسمه var1 دا مش هيكون فيه حاجة لان ال method الى اسمها sum1 بيتفذ الى فيها الى هو الطباعه وخلاص -اسمها void - يعنى مش هترجع بقيمه
-تانى varible الى اسمه var2 دا هيكون فيه 7 -- لن ال method الى اسمها sum2 بيتنفذ الى فيها وانا قولت للبرنامج خلى بالك انا كتبلك public int يعنى ما تسبهاش الا لما ترجع بقيمه int منها - فلما رجع بقيمه انا استقبلت القيمه دى فى varible اسمه var2
-لكن السطر الى فيه var1 هيدينى error لان ال method الى اسمها sum1 مش بترجع بقيمه --مفهاش return -- ومفهاش النوع الى هترجع بيها -int -double -string ... وسعتها هنستدعيها باسمها بس sum1()
-فلو انت مش عاوز ال method ترجع قيمه هتعملها void لو انت عوزها ترجع قيمه هتكتب ال return type ايه - Int او string او ... و بعدين فى اخر ال method تكتب return وجنبها القيمه الى انت عاز ترجعها
طب انا استفدت ايه لما عملت الاولى void والتانيه int ما كنت عملت التانيه void برضو
-افرض انت عاوز تعمل عمليه حسابيه تانيه على القيمه بعد ما ترجعلك من ال sum2 او تودى القيمه دى ل method تانيه او تستخدمها فى مكان معين فى البرنامج ومش عاوز تطبعها وخلاص ؟
-فانت بتعملها بترجع قيمه او لا على حسب استخدامك
طيب ال pramaters ؟
-هو نفس المثال بتاع ال sum مش هنغير فيه الا حاجة بسيطه
-شايف الاتين ميثود sum1 و sum2 دول كل مره هتستدعيهم فيها هيجمعو 7 يعنى القيمه 7 دى مش هتتغير
طب لو انا عاوز اغيرها هعمل ايه ؟
- هى دى فيده ال paramters
اتعالى نكتبهم تانى
public void sum1(int y, int z) {
int x = y + z;
System.out.println(x);
}
public int sum2(int y, int z) {
int x = y + z;
return x;
}
-اعملهم call بقى وغير القيم برحتك
تعالى نشوف كدا
public static void main () {
sum1(10, 20);
int var2 = sum2(10, 20);
}
-الاولى هتطبع 30 على الشاشة
-والتانيه هترجع 30 وتحطها فى ال varible الى اسمه var2
- وال paramters ممكن يكون اى حاجة غير ال int مش شرط Int
-وبالمناسبه تخيل لو البرنامج بتعاك كله call لل methods سعتها هيبقى منظم اكتر ولو حصل مشكله هتعرف المشكله فى انهى method وهتروح تصلحها بسهوله لان كل method منفصله عن التانيه
ودى كانت ال methods بشكل بسيط - لو بعد الكلام دا ما فهمتش - روح اسمع الفديو تانى وان شاء الله هتفهم بعد الكلمتين دول - لو مفهمتش عيد الفديو تانى وتالت ورابع واقرأ الكلام تانى وان شاء الله هتفهم 

لو لسا مفهمتش اوي دا مقال تاني للتوضيح اكتر 
http://www.ultras-fci.com/2017/09/methods.html


Unknown

مدونة :

مدونة تقنية تحتوى على مجموعة دروس ودورات فى مجالات تقنية مختلفة مثل دروس انظمة التشغيل والبرامج والالعاب وبلوجر وفوتوشوب وتطبيقات اندوريد والربح من الانترنت وغيره من الشروحات المميزة تاست مدونة مستر ابوعلى عام 2013 وبفضل الله نالت اعجاب الكثير مؤسس المدونة مستر ابوعلى مدون مصرى

التعليقات



إذا أعجبك محتوى مدونتنا نتمنى البقاء على تواصل دائم ، فقط قم بإدخال بريدك الإلكتروني للإشتراك في بريد المدونة السريع ليصلك جديد المدونة أولاً بأول ، كما يمكنك إرسال رساله بالضغط على الزر المجاور ...

إتصل بنا

تغريداتي علي التويتر

حمل تطبيقنا

زوار المدونة

Statistics

إحصاءات المدونة

جميع الحقوق محفوظة لـ

محترف التقنية

2017

تصميم:

أحمد شحاتة