| كيف اتعلم لغة الجافا java | |
|
|
كاتب الموضوع | رسالة |
---|
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| موضوع: كيف اتعلم لغة الجافا java الثلاثاء أكتوبر 20, 2009 4:41 pm | |
| [size=16]لغة الجافا هي أحد لغات البرمجة الحديثة نوعاَ ما، كما أنها واحدة من أكثر لغتين إنتشارا ً مع لغة السي شارب. فمع الجافا تستطيع أن تكتب برامج لــــ:
- سطح مكتب Desktop مثل برامج مكافحة الفيروسات
- الويب مثل هذا الموقع مثلا
- الموبايل
- برامج الخادم مثل قواعد البيانات وبرامج المؤسسات
ظهرت لغة الجافا التي أنتجتها شركة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]قبل السي شارب التي أنتجتها [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]، وقد كان ولازال إنتشار هذه اللغة يسبب أرقاُ وصداعاُ كبيرا لشركة مايكروسوفت وخصوصا في عمل برامج المؤسسات والويب حتى ظهرت السي شارب. و لكن ماهو سر هذه القوة.... إنه للأسباب التالية:
- تعمل
برامج الجافا على معظم أنظمة التشغيل مثل اليونكس و اللينوكس و السولاريس و الويندوز. ولكن من أهم هذه النظم هو اليونكس لأنه أكثر أمانا ومقاومة الفيروسات و أكثر ثباتا من الويندوز، ولهذا كل المؤسسات الكبيرة مثل البنوك تستخدم اليونكس
- لغة سهلة التعلم و كبيرة الإمكانيات وبدون تعقيدات السي بلس بلس C++ و الكوم COM.
لقد كان في فكر مخترع هذه اللغة هو إختراع لغة تستطيع أن تركز بها في وصف المشكلة التي تريد حلها بعيدا عن تفاصيل نظام التشغيل. هذه التفاصيل مثل:
- كيفية كتابة ملف على القرص الصلب
- كيف أكتب معلومات في ذاكرة الجهاز وكيف أعيد قراءتها
- :كيف أخلق المعلومات في صورة Object ومتى أقوم بحذفها
فمثلا إذا كنت أريد أن أكتب برنامج لإدارة المدارس وقلت لك أن تأخذ التفاصيل السابقة معك وأن تفكر في المشكلة فلن تصل لحل المشكلة مثل شخص آخر يضع كل تفكيره وتركيزه في وصف نظام إدارة المدرسة مثل من له حق استخدام النظام و ما هي المعلومات المطلوبة عن المدرسين و الطلبة و المناهج و ما هي السيناريوهات USE CASES المختلفة للنظام. إذن فلغة الجافا هي تقريبا مثل أي لغة لغة طبيعية كالعربية والإنجليزية نستخدمها لنعبر عن أفكارنا ومشاكلنا ونتواصل بها مع الآخرين هذه مقدمة سريعة. يجب أن أذهب الآن و لكن هل هناك من يريد أن يتعلم الجافا لأدخل في الموضوع تعلم لغة الجافا [/size] | |
|
| |
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| |
| |
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| |
| |
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| موضوع: رد: كيف اتعلم لغة الجافا java الثلاثاء أكتوبر 20, 2009 4:44 pm | |
| لغة الجافا مثل اللغات التي نتكلم بها لها قواعد نحوية. ولكن ما هي فائدة القواعد في اللغة؟ إن قواعد النحو في اللغة تعطي الناس قدرة أفضل على الإتصال و تحسين مهارات التفكير فإنها تجعلك منصت ومتكلم و قاريء وكاتب بكفاءة كبيرة. اللغة تكون بين متكلم ومستمع أو كاتب وقاريء. بالنسبة للجافا فأنت المتكلم و الكاتب أما المستمع والقاريء فهو الكمبيوتر. ولكي نستطيع أن نوصل أفكارنا للكمبيوتر ونجعله يفهمها وأيضا حتى تكون أفكارنا أكثر وضوحا فيجب أن نلتزم بقواعد لغة الجافا. إقرأوا معي البرنامج BasicDemo التالي وهو منقول من موقع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]: كود: public class BasicsDemo { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); هذا البرنامج يقوم بجمع الأرقام من واحد إلى عشرة ثم يقوم بعرض النتيجة على الشاشة. هذا البرنامج يحتوي على الكثير من القواعد في الجافا وإن كان لايبدو واضحا الآن ولكن ما يهمنا هنا أن نشرح مكونات الجافا الموجودة بهذا البرنامج. عذه المكونات مثل المتغيرات variables و معاملات operators و الأوامر الي تحكم مسارتنفيذ البرنامج control flow statement. فالمتغيرات نستخدمها لتحمل المعلومات وسوف نتكلم بعد قليل كيف نعرف المتغيرات وما هي أنواع المتغيرات وكيف نعرف مجال scope المتغير. أما المعاملات فسوف نتعلم كيف نكتب العمليات المختلفة سواء عمليات حسابية أو عمليات التخصيص assignment operators . وسوف نتعلم في مباديء الجافا كيف نمزج المتغيرات و المعاملات في تسلسل معين ونكون جملة expression . هذه الجمل هي أحجار البناء أو القوالب التي يتكون منها برنامج الجافا. وسنتعلم أيضا الأوامر الي تحكم مسارتنفيذ البرنامج control flow statement مثل الأوامر الشرطية والتي بها لا تنفذ أجزاء من الكود إلا بتوفر شروط معينة. وكيف نكتب أوامر التكرار. سنتكلم في هذا الدرس عن المتغيرات. قلنا سابقا أن ال object له صفات أو أحوال states ويحتفظ بقيمها في ال variables. فالمتغير يحمل معلومة أوبيانات ونشير للمتغير بإسم identifier يمثل بطاقة الهوية أو الشيء المميز لهذا المتغير. هذا الإسم هو تسلسل من [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]سواء أرقام أو حروف ولابد أن يبدأ الإسم بحرف هجاء إنجليزي أي حرف من a إلى z أو A إلى Z أو أن يبدأ ب ال under score _ أو بعلامة الدولار $. أمثلة لأسماء المتغيرات:
- HelloWorld
- Math
- Applet
- test123
- r2d2
- MAX_VALUE
- FordV8
- _DA_DA
- $100
- HereIsA$20
وأيضا لا يجب أن يكون إسم المتغير من الأسماء المحفوظة reserved words وسوف نتكلم عنها في درس آخر وكما أن للمتغير إسم فله أيضا نوع type يحدد القيم التي يكن أن يحتويها هذا المتغير و العمليات الي يمكن تنفيذها على هذا المتغير. فمثلا لو عرفنا متغير وكان إسمه x وكان من النوع class التي إسمها Car فإن x لايمكن أن يحمل القيم من نوع class التي إسمها بنك. إذن ما هي القاعدة النحوية لتعريف متغير في لغة الجافا؟ القاعدة هي: type nameأي نكتب إسم النوع الذي يكون منه المتغير ثم نكتب إسم المتغير مثال: كود: int xفهذا متغير إسمه x و من النوع int لكل متغير مدى أو مجال scope نستطيع أن نستخدم إسم المتغير فيه. مجال المتغير يتحدد بطريقة غير مباشرة بالمكان الذي قمنا فيه بتعريف المتغير. والمجال أيضا يحدد متى يتم تخليق المتغير ومتى يتم إزالته من ذاكرة البرنامج أي متى يموت. سنتكلم عن الscope بالتفصيل في درس قادم. هناك فئتان من الأنواع types التي يمكن أن يكون منها المتغير. الفئتان هما الأنواع الأولية primitive types و الأنواع المرجعية reference types. المتغير الذي يكون من النوع primitive يحتوي على قيمة واحدة فقط وهذه القيمة لها مقاس في ذاكرة البرنامج ولها شكل format مثل أن يكون تسلسلا من الحروف أو تسلسلا من الأرقام وهذا المقاس والشكل يحدده نوع المتغير . فمثلا المتغير من النوع int مقاسه 32 بت bits وشكله أي الformat هي two's complement والمتغير من النوع char مقاسه 16 بت و شكله يكون Unicode character. الأنواع الأولية في الجافا هي: من الممكن أن نعطي للمتغير قيمة و نحن نعرفه. هذه القيمة تسمى literal value كود: int x = 3كما في الجدول السابق لنعرف قيمة من النوع int مباشرة في الكود فنكتب تسلسلا من الأرقام الصحيحة ولكي نقوم بكتابة قيمة long (أي رقم صحيح طويل) فإننا نضع حرف L أو l في نهاية التسلسل الرقمي. أما إذا كتبنا تسلسل من الأرقام وفيه علامة عشرية أي نقطة فهو من النوع double وإذا وضعنا في آخر التسلسل الحرف F أو f فهو من النوع float. أما ال character في يتكون من أي حرف Unicode واحد فقط بين two single quotes أي بين ' ' . ال quote في اللغة العربية تعني قطفة.
الفئة الأخرى من المتغيرات هي الأنواع المرجعية reference types فالمتغيرات التي ليست من الأنواع الأولية primitives السابقة فهي reference types مثل ال class و ال interface و المصفوفات arrays. القيمة التي يحملها المتغير الذي يكون من الفئة reference هي عنوان المعلومة التي يحملها وليس المعلومة نفسها أي ليس مثل ال primitive types. ال reference يشبه ال shortcut أي الإختصار فعندما نقوم بعمل shortcut لملف أو برنامج فإن هذه ال shortcut تشير إلى مكان الملف أو البرنامج وليست هي الملف أو البرنامج نفسه. الواجب العملي: أي من التالي هو أسماء متغيرات صحيحة:
- int
- anInt
- i
- i1
- 1
- thing1
- 1thing
- ONE-HUNDRED
- ONE_HUNDRED
- something2do
في الكود الخاص بالرنامج السابق BasicDemo ما هي المتغيرات وما هي أنواعها؟ والسلام | |
|
| |
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| موضوع: رد: كيف اتعلم لغة الجافا java الثلاثاء أكتوبر 20, 2009 4:45 pm | |
| تكلمنا في الدرس السابق عن المتغيرات و في هذا الدرس سنتكلم عن المصفوفات arrays . المصفوفة هي وعاء او حاوية تحمل عدد محدد من القيم values لمتغيرات variables من نفس النوع type.طول المصفوفة( أو الحاوية) أي عدد القيم التي تحملها يتحدد عندتخليق المصفوفة كما سنرى. بعد تخليق المصفوصة فإن طولها يظل ثابتا، أي لايمكن أن تحمل عناصر أكثر.
كل عنصر في الarray يسمى element وكل عنصر يمكن الوصول له في المصفوصة عن طريق فهرس رقمي يسمى index. كما في الصورة التالية.
ترقيم الفهرس يبدأ من العدد صفر. لذا فإن العنصر التاسع رقمه الفهرسي هو 8 . فمثلا فأنت ترى في بعض العمارات صناديق بريد وكل صندوق عليه رقم يعبر عن رقم شقة (عنصر) . نفس الكلام ينطبق على المصفوفة في الجافا و لكن الترقيم يبدأ من الرقم صفر كما قلنا. إستخدامات المصفوفات كثيرة فمثلا من الممكن أن نعرف مصفوفة تحتوي على أسماء لاعبي الفريق في النادي. إقرأ معي قوله تعالى: "زُيِّنَ لِلنَّاسِ حُبُّ الشَّهَوَاتِ مِنَ النِّسَاء وَالْبَنِينَ وَالْقَنَاطِيرِ الْمُقَنطَرَةِ مِنَ الذَّهَبِ وَالْفِضَّةِ وَالْخَيْلِ الْمُسَوَّمَةِ وَالأَنْعَامِ وَالْحَرْثِ ذَلِكَ مَتَاعُ الْحَيَاةِ الدُّنْيَا وَاللّهُ عِندَهُ حُسْنُ الْمَآبِ{14} قُلْ أَؤُنَبِّئُكُم بِخَيْرٍ مِّن ذَلِكُمْ لِلَّذِينَ اتَّقَوْا عِندَ رَبِّهِمْ جَنَّاتٌ تَجْرِي مِن تَحْتِهَا الأَنْهَارُ خَالِدِينَ فِيهَا وَأَزْوَاجٌ مُّطَهَّرَةٌ وَرِضْوَانٌ مِّنَ اللّهِ وَاللّهُ بَصِيرٌ بِالْعِبَادِ{15} الَّذِينَ يَقُولُونَ رَبَّنَا إِنَّنَا آمَنَّا فَاغْفِرْ لَنَا ذُنُوبَنَا وَقِنَا عَذَابَ النَّارِ{16} الصَّابِرِينَ وَالصَّادِقِينَ وَالْقَانِتِينَ وَالْمُنفِقِينَ وَالْمُسْتَغْفِرِينَ بِالأَسْحَارِ"لتعريف مصفوصة تحتوي علي صفات المتقين فلنقرأ الكود التالي: كود: String [] godlyPeopleArray; godlyPeopleArray = new String[5]; godlyPeopleArray[0] = "الصَّابِرِينَ"; godlyPeopleArray[1] = "الصَّادِقِين"; godlyPeopleArray[2] = "الْقَانِتِينَ"; godlyPeopleArray[3] = "الْمُنفِقِينَ"; godlyPeopleArray[4] = "الْمُسْتَغْفِرِينَ بِالأَسْحَارِ";
System.out.println("صفة المتقي عند الفهرس رقم 0 :" + godlyPeopleArray [0]); System.out.println("صفة المتقي عند الفهرس رقم 1 :" + godlyPeopleArray [1]); System.out.println("صفة المتقي عند الفهرس رقم 2 :" + godlyPeopleArray [2]); System.out.println("صفة المتقي عند الفهرس رقم 3 :" + godlyPeopleArray [3]); System.out.println("صفة المتقي عند الفهرس رقم 4 :" + godlyPeopleArray [4]); في الكود السابق عرفنا المصفوفة godlyPeopleArray من النوع String و تحمل خمس عناصر . ثم ملأنا كل عنصر في المصفوفة ب String . بعد ذلك طبعنا هذه العناصر على الشاشة بإستخدام الأمر System.out.println . بالطبع عند كتابة برنامج سنستخدم أوامر التكرار مثل ال for loop وذلك لتسهيل الكتابة كما سنرى في درس قادم بإذن الله. لتعريف مصفوفة نكتب نوع المصفوفة ثم نكتب قوسان مربعان [] ثم نتبعهم بإسم المصفوفة. كود: String [] godlyPeopleArray; int [] IntegersArray; byte [] bytesArray; char [] charactersArray; boolean [] booleans;
لتخليق المصفوفة نستخدم الأمر new ثم نتبعه بنوع المصفوفة ثم قوسان مربعان [] وبينهما طول المصفوفة .
كود: godlyPeopleArray = new String[5]; لملأ المصفوفة أتظر للكود التالي: كود: godlyPeopleArray = new String[5]; godlyPeopleArray[0] = "الصَّابِرِينَ"; godlyPeopleArray[1] = "الصَّادِقِين"; godlyPeopleArray[2] = "الْقَانِتِينَ"; godlyPeopleArray[3] = "الْمُنفِقِينَ"; godlyPeopleArray[4] = "الْمُسْتَغْفِرِينَ بِالأَسْحَارِ";
integersArray[0] = 2; integersArray[1] = 100; integersArray[2] = 200;كل عنصر في المصفوفة نصل له بفهرسه الرقمي كما في الأمر: كود: System.out.println("صفة المتقي عند الفهرس رقم 0 :" + godlyPeopleArray [0]);من الممكن تعريف وتخليق وملأ المصفوفات بطريقة قصيرة كالآتي: كود: int[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};طول المصفوفة في المثال السابق هو عدد العناصر بين القوسين { و } من الممكن أيضا أن نعرف مصفوفة متعددة الأبعاد multidimensional array أي مصفوفة تحتوي على مصفوفة أو أكثر. تعريف المصفوفة متعددة الأبعاد يكون بنفس طريقة تعريف المصفوفة أحادية البعد ولكن نضع عدد من مجموعات الأقواس المربعة يساوي عدد أبعاد المصفوفة. مثال على ذلك تخيل إننا نريد تعريف نتيجة بعدد أيام الأسبوع وتحتوي على الأنشطة التي نقوم بها كل يوم و بحد أقصى عشرة أنشطة. كود: String [][]calendar ; calendar = new String [7][10]; calendar[0][0] = "حفظ قرآن"; calendar[0][1] = "درس جافا"; calendar[0][2] = "لقاء مع الأصدقاء"; . . . calendar[4][0] = "لعب كرة"; calendar[4][1] = "زيارات عائلية"; . .في المثال السابق فإننا عرفنا المصفوفة calendar والتي تحتوي على بعد يمثل أيام الأسبوع وطوله 7 و تحتوي على بعد ثاني يمثل الأنشطة التي سنقوم بها في هذا اليوم وطوله عشرة. لمعرفة طول المصفوفة نستخدم ت صفة property إسمها length مثال: كود بلغة HTML: calendar.lengthالواجب العملي: يوجد دوري مكون من ثلاثة فوق و كل فريق سيقابل الفريق الآخر مرتين ولكن في يومين مختلفين. وكل يوم سيقابل كل فريق الفريقين الآخرين. المطلوب تعريف و تخليق وملأ مصفوفة تعبر عن الفرق التي سيقابلها كل فريق لكل يوم في البطولة. والسلام | |
|
| |
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| موضوع: رد: كيف اتعلم لغة الجافا java الثلاثاء أكتوبر 20, 2009 4:46 pm | |
| العمليات الحسابية في علم الرياضيات تتكون من رموز حسابية (عوامل) operators و معاملات operands. فمثلا : كود: y = 4 + 3فإن علامة الجمع + هي ال operator و 4 و 3 هي المعاملات operands ، أما y فهي ناتج تلك العملية الحسابية. في الرياضيات فإن ال operator هو عبارة عن function (وظيفة) أو operation (عملية) أو كما نسميها في الجافا method ولهذه الfunction مدخلات أي inputs هي ال operands و لها output أي ناتج العملية. فمثلا من الممكن في المثال السابق أن نمثل هذه العملية الحسابية كما يلي: كود: y = sum (4,3);حيث sum تقابل ال operator الرياضي + في الرياضيات الoperators تكون في كلمة صورة كلمة مثل Sin و Tan أو رمز مثل + - * % / كما قلنا ال operators هي functions و لها عدد من المدخلات أي inputs أي operands فإن الoperators يمكن تصنيفها على أساس عدد ال inputs التي تحتاجها ال function أي ال operands تصنيف ال operators على أساس عدد ال inputs:
- ال operators الأحادية أي ال unary operators وهي ال operators التي تحتاج ل معامل واحد فقط مثل علامة السالب أو علامة الزيادة بواحد أي increment
كود:
-3 y++
- ال operators الثنائية أي ال binary operators وهي ال operators التي تحتاج لمعاملان مثل علامة الجمع وعلامة الضرب
كود:
5+3 4* 5.8
- ال operators الثلاثية أي ال trinary operators وهي ال operators التي تحتاج لثلاثة معاملات مثل علامة Heap
كود:
[x,y,z] € H
عدد ال operands يسمي x-nary أو n-arity وأيضا تصنف ال operators على حسب مكانها بالنسبة لل operands ومن أكثر هذه الأنواع شيوعا:
- العوامل السابقة أي prefix وهي التي تسبق المعاملات في الكتابة مثل:
كود:
-5 -x ++x cos(90)
- العوامل اللاحقة أي postfix وهي التي يكون مكانها بعد المعاملات في الكتابة مثل:
كود:
x++ y!
- العوامل الوسطية أي infix وهي التي يكون مكانها بين المعاملات في الكتابة مثل:
كود:
4+ 2 y*5
- العوامل الفوقية أي super****** أو العوامل السفلية أي sub****** مثل الأس (وهي superscipt) حيث يكتب رقم الأس فوق رقم آخر
لوسألنا ما هو ناتج y في المثال التالي: كود: y = 5 + 2 * 3;فقد يقول البعض كود: y = 11;وقد يقول آخرون كود: y = 21;بالطبع لايمكن أن يكون هناك ناتجان لهذه العملية ولكن الذين قالوا أن الناتج هو 11 فقد قاموا بحساب y على أساس: كود: y = 5 + (2 * 3);والذين قالوا أن ناتج العملية هو 21 فقد قاموا حساب y على أساس: كود: y = (5 + 2) * 3;لحل هذه المشكلة فإنه يوجد لل operators في الجافا وبالطبع في لغات البرمجة كلها أسبقية أي precedence. فمثلا فإن علامة الضرب تسبق علامة الجمع في التنفيذ، ولهذا فإن ناتج العملية السابقة هو 11 . الجدول التالي يوضح ترتيب operators على أساس أسبقيتها بحيث أن ترتيب ال operators التي في الجدول على حسب الأسبقية الأعلى، أي أن ال operators في أي صف تسبق ما يأتي بعدها من operators ال operators التي في نفس الصف لا توجد لها أسبقية على بعضها.
علامة النسخ simple assignment علامة النسخ أي = هي أكثر ال operators إستخداما و يقوم هذا ال operator بنسخ قيمة ال operand أو ناتج العملية التي على يمينه في operand الذي على يساره. كود: y = x;مثال: كود: int numberOfUsers = 20; int y = 4;أيضا يستخدم هذا ال operator لنسخ قيمة reference على object في object آخر كما قلنا في درس سابق وسنوضح هذا أكثر في درس قادم إنشاء الله. العوامل الحسابية: وهي العوامل التي تستخدم في العمليات الحسابية المعتادة مثل
- + وهي علامة الجمع
- - وهي علامة الطرح
- * وهي علامة الضرب
- / وهي علامة القسمة
- % وهي علامة باقي القسمة.
أمثلة: كود: int result = 5 + 4; //result = 9 int y = result - 3; // y = 6 int result = result * 2 / 3; //result = 6 result = 3 % 2 //result = 1; float savedMoney = 100.0 float zakkah = savedMoney * 2.5 / 100; //zakkah = 2.5أيضا يمكن دمج العلامات الحسابية مع علامة ال = مثال: كود: int result = 2; result += 3; //result = 5وهذا يطابق أن نقول:
كود: int result = 2; result = result + 3; //result = 5علامة الجمع + تستخدم أيضا في دمج الجمل أي ال Strings. مثال:
كود: String message1 = " لا إله إلا الله"; String message2 = "محمد رسول الله"; String alShahada = message1 + message2; //alShahada = "لا إله إلا الله محمد رسول الله"العلامات الأحادية unary operatorsو هي ال operators التي تحتاج إلى operand واحد فقط مثل:
- + وهي علامة الموجب
- - وهي علامة السالب
- ++ وهي علامة زيادة قيمة ال operand بواحد وتسمى increment
- -- وهي علامة إنقاص قيمة ال operand بواحد وتسمى decrement
- ! وهي العلامة المكمل المنطقية logical complement و لابد أن يكون
ال operand من النوع boolean ويكون الناتج هو عكس القيمة أي إذا كانت القيمة true فإن الناتج يكون false والعكس صحيح
أمثلة:
كود: int x = +1; // x= 1 x--; // x = 0 x++; //x = 1 boolean success = true; boolean failure = ! success failure = false;علامة ال increment و الdecrement من الممكن أن تجيء قبل ال operand أي prefix وفي هذه الحالة فإن ناتج العملية يكون هو نفس قيمة ال operand الذي جاء بعد علامة ال increment أو ال decrement بعد تأثير العلامة على ال operand
أمثلة:
كود: int x = 1; int y = ++x ; //y = 2, x = 2 int z = 2 - ++x //z = -1, x = 3أما إذا جاءت علامة ال increment و الdecrement بعد ال operand أي postfix ففي هذه الحالة فإن ناتج العملية يكون هو نفس قيمة ال operand الذي جاء بعد علامة ال increment أو ال decrement ولكن قبل تأثير العلامة على ال operand أمثلة:
كود: int x = 1; int y = x++ ; //y = 1, x = 2 int z = 2 - x++ //z = 0, x = 3علامة التساوي == والعلامات العلاقية equality and relational operatorsهذه ال operators تحدد إذا كان ال operand الذي قبل ال operator يساوي أو علامة لايساوي أو علامة أكبر من علامة أو أصغر من أو علامة أكبر من أويساوي أو علامة أصغر من أو يساوي ال operand الذي بعد ال operator ويكون ناتج العملية من النوع boolean وهذه العلامات هي:
- == وهي علامة التساوي
- > وهي علامة أكبر من
- < وهي علامة أقل من
- >= وهي علامة أصغر من أو يساوي
- != وهي العلامة لايساوي
أمثلة: كود: int x = 1; int y = 3; boolean result = x == y; //result = false result = x < y; //result = false result = x > y; //result = true result = x >= y; //result = false; result = x <=y; //result = true result = x != y; //result = trueالعلامات الشرطية conditional operatorsال operands لهاتين العلامتين عددهما أثنان و لابد أن تكون هذه ال operands من النوع boolean وناتج هذه العملية هو من النوع boolean أيضا وهذه ال operators هي:
&& وهي علامة "و" يلزم أن تكون قيمة كلا ال operands ب true حتي يكون الناتج true وإذا لم يتحقق هذا الشرط فإن الناتج يكون false
- || وهي علامة "أو" يلزم أن أن تكون قيمة أي من ال operands ب true
فإن الناتج يكون true و إذا لم يتحقق هذا الشرط إي أن كلا ال operands ب false فإن الناتج يكون false
أمثلة: كود: boolean condition1 = false; boolean condition2 = true; boolean condition3 = true;
boolean result = condition1 && condition2; //result = false result = condition1 || condition2; //result = true result = condition2 || condition3; //result = true result = condtion2 && condition3; //result = true boolean shouldFast; //معناها يصوم int day1 = 14; shouldFast = day1 >= 13 && day1<= 15 //shouldFast = trueهناك إستثناء للتعريف السابق للعلامات الشرطية و هو ال علامة ؟: وهي علامة شرطية تحتاج إلى ثلاثة operands أي trinary operator و هي ال يكون ال operand الأول هو الشرط و إذا تحقق هذا الشرط فإن ناتج العميلة هو قيمة ال operand الثاني وإذا لم يتحقق لاشرط فالناتج يكون هو قيمة ال operand الثالث ولابد أن يكون ال operands الثاني والثالث من نفس النوع . نانج هذه العملية هو يكون من نفس نوع ال operands الثاني والثالث.
كود: result = operand1 ? operand2 : operand3; أمثلة: كود: int x = 2 > 3 ? 4 : 8; //x = 8 boolean result = 34 > x ? true : false //result = true int period = 366; float savedMoney = 100; float zakkah = period >= 365 ? savedMoney * 2.5 / 100 : 0; //zakkah = 2.5هناك أيضا operators تقوم بعمليات على البت تسمى ثناتية أي bitwise operations . ال binary numbers تتكون من الرقمين 0 و 1 فقط. أما الأرقام التي نستخدمها في عادة في الحسابات فهي الأرقام العشرية وهي التي تتكون من الأرقام من صفر إلى 9 من ال operators التي تتم على البت العلامة الأحادية العاكسة أي unary bitwise operator ويرمز بــ ~ ويقوم هذا ال operator بعكس كل bit في الرقم أي يجعل الصفر واحد والصفر واحد فمثلا لو قلنا أن متغير من النوع byte أي يتكون من 8 bits و كان يساوي 0 أي 00000000 فناتج ال الoperator الأحادي العاكس على هذا الرقم يكون 111111 وهناك أيضا ال bitwise and operator ويرمز له بــ & و يحتاج ل 2 operands و الناتج يكون العملية على كل bit في كل operand مع ال bit التي تقابلها في ال operand الثاني و ناتج هذا ال operator على ال bits يكون كالتاي:
كود: 0 & 0 = 0 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1مثال: كود: byte x = 2; //x = 00000010 byte y = 3 //y = 00000011 byte result = x & y; //result = 2 = 00000010 وهناك أيضا ال bitwise or operator ويرمز له بــ | و يحتاج ل 2 operands و الناتج يكون العملية على كل bit في كل operand مع ال bit التي تقابلها في ال operand الثاني و ناتج هذا ال operator على ال bits يكون كالتاي:
كود: 0 | 0 = 0 0 | 1 = 1 1 | 0 = 1 1 | 1 = 1مثال:
كود: byte x = 9; //x = 00001001 byte y = 3 //y = 00000011 byte result = x & y; //result = 1 = 00000001هناك bitwise operators أخرى ولكن سنتكلم عنها عند الحاجة لها.
الواجب العملي: 1: ما هو ناتج y في العملية التالية:
كود: int x = 9; int y = x * 2 + 3;2: ما هو ناتج x و z في العملية التالية:
كود: int x = 3; int z = 5 + x++ + 2 / 2; 3: ما هو ناتج x و y و z في العملية التالية:
كود: int x = 6; int y = 4; int z = x++; int w = ++y + x;4: ما هو ناتج x و y و result في العملية التالية:
كود: boolean result = false; int x = 2; int y = 2; y++; ++x; result = x > y ? true : falseإنشاء الله سيتم كتابة الإجابات للدرس السابق و أسئلتكم قريباً
| |
|
| |
Admin المديرعماد الصنوي Admin
عدد الرسائل : 2448 الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/ العمل/الترفيه : طالب student نقاط : 9137 السٌّمعَة : 0 تاريخ التسجيل : 11/04/2008
| موضوع: رد: كيف اتعلم لغة الجافا java الثلاثاء أكتوبر 20, 2009 4:47 pm | |
| تخيل أن قطعة من الخشب سقطت في مجرى مائي (نهر) فإنها ستستمربالسير في نفس المسار. وكانت هناك صخرة كبيرة أمام قطعة الخشب فإنها الآن أمامها مساران أحدهما يمين الصخرة والآخر على يسارها. فإن قطعة الخشب ستسير في المسار الأيمن إذا كان إتجاة الرياح والتيار يميل ناحية اليمين وستسير يسارا إذا كان العكس صحيحا. أوامر البرنامج نكتبها في سطور من الأعلى للأسفل وتنفيذ الأوامر يشبة قطعة الخشب في النهر فإن الأوامر تنفذ من الأعلى للأسفل ولكن مسار التنفيذ يتغير عندما توجد أشياء مثل الصخرة التي تقسم المسار إلى مسارين. الصخرة يماثلها في البرمجة أوامر التحكم في المسار (control flow statements). سنتعرف على هذه الأوامر ونحن نستسكمل رحلة قطعة الخشب في النهر. if - else statementإذا أردنا أن نكتب سطور برمجية تماثل الموقف السابق :
كود:
if (wind =="يمين") { System.out("قعة الخشب تسير هنا في المسار الأيمن")
} else { System.out("قعة الخشب تسير هنا في المسار الأيسر")
}
في المثال السابق يوجد لدينا مسارين مختلفين للبرنامج وسيدخل الرنامج في المسار(block) إذا توافرت شروط الدخول. ففي المثال السابق إذا كان الرياح يمينية (wind =="يمين") فإن ال block التالي لهذا الشرط سيقوم البرنامج بتنفيذه. الأمر else معناه إذا لم يتحقق الشرط السابق فإن ال block التالي للأمر else هو الذي سيتم تنفيذه. if -else if statement في أحد المناطق تسمى الفيوم يوجد أعداد كبير من البجع تنزل إلى النهر في الصباح أما في وقت الغروب فإن قطيع من البط الأحمر ينزل إلى النهر. فإذا مرت قطعة الخشب بهذة المنطقة في الصباح فإن ستتغطى بكمية كبيرة من ريش البجع ويسير لونها أبيض أم إذا مرت بهذه المنطقة في المساء فإن لونها يصير أحمر من ريش البط. نستطيع أن نحكي هذة الفقرة السابقة بسسطور البرمجة التالية:
كود:
if ((time == ''الصباح") &&(area == "الفيوم" ) ) { woodColor s= "أبيض" } else if((time == ''الغروب") &&(area == "الفيوم" ) ) { woodColor = "أحمر" }
في المثال السابق إستخدمنا الأمر if -else if ومعناه أن ال block بعد if سيتنفذ إذا تحققت شروطه أما إذا لم تتحق وتحققت شروط ال block التالي ل if else فإن البرنامج سينفذ ال block التالي ل if else . قبل أن أذهب الآن فالواجب العملي هو أن تذكر الفرق بين if- else و if-else if | |
|
| |
| كيف اتعلم لغة الجافا java | |
|