Forum Alsina منتدى الصنه ( Emaddobay-Yemen Alsanwy) منتدى الصنه Forum Alsina

عزيزي الزائر / عزيزتي الزائرة مرحباً في المنتدي ككل ويسعدنا وجودك معنا ونسعد بمشاركاتك يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي

Forum Alsina منتدى الصنه ( Emaddobay-Yemen Alsanwy) منتدى الصنه Forum Alsina

(منتدى الصنه) اهلا وسهلا بكم
 
الرئيسيةمكتبة الصورس .و .جبحـثالمجموعاتالتسجيلدخول

شاطر | 
 

 كيف اتعلم لغة الجافا java

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 0
تاريخ التسجيل : 11/04/2008

مُساهمةموضوع: كيف اتعلم لغة الجافا java   الثلاثاء أكتوبر 20, 2009 4:41 pm

[size=16]لغة الجافا هي أحد لغات البرمجة الحديثة نوعاَ ما، كما أنها واحدة من أكثر لغتين إنتشارا ً مع لغة السي شارب.
فمع الجافا تستطيع أن تكتب برامج لــــ:

  1. سطح مكتب Desktop مثل برامج مكافحة الفيروسات
  2. الويب مثل هذا الموقع مثلا
  3. الموبايل
  4. برامج الخادم مثل قواعد البيانات وبرامج المؤسسات
ظهرت لغة الجافا التي أنتجتها شركة صن قبل السي شارب التي أنتجتها مايكروسوفت،
وقد كان ولازال إنتشار هذه اللغة يسبب أرقاُ وصداعاُ كبيرا لشركة
مايكروسوفت وخصوصا في عمل برامج المؤسسات والويب حتى ظهرت السي شارب.
و لكن ماهو سر هذه القوة.... إنه للأسباب التالية:

  1. تعمل
    برامج الجافا على معظم أنظمة التشغيل مثل اليونكس و اللينوكس و السولاريس
    و الويندوز. ولكن من أهم هذه النظم هو اليونكس لأنه أكثر أمانا ومقاومة
    الفيروسات و أكثر ثباتا من الويندوز، ولهذا كل المؤسسات الكبيرة مثل
    البنوك تستخدم اليونكس
  2. لغة سهلة التعلم و كبيرة الإمكانيات وبدون تعقيدات السي بلس بلس C++ و الكوم COM.
لقد كان في فكر مخترع هذه اللغة هو إختراع لغة تستطيع أن تركز بها في وصف المشكلة التي تريد حلها بعيدا عن تفاصيل نظام التشغيل. هذه التفاصيل مثل:

  1. كيفية كتابة ملف على القرص الصلب
  2. كيف أكتب معلومات في ذاكرة الجهاز وكيف أعيد قراءتها
  3. :كيف أخلق المعلومات في صورة Object ومتى أقوم بحذفها
فمثلا إذا كنت أريد أن أكتب برنامج لإدارة المدارس وقلت لك أن تأخذ
التفاصيل السابقة معك وأن تفكر في المشكلة فلن تصل لحل المشكلة مثل شخص
آخر يضع كل تفكيره وتركيزه في وصف نظام إدارة المدرسة مثل من له حق
استخدام النظام و ما هي المعلومات المطلوبة عن المدرسين و الطلبة و
المناهج و ما هي السيناريوهات USE CASES المختلفة للنظام.
إذن فلغة الجافا هي تقريبا مثل أي لغة لغة طبيعية كالعربية والإنجليزية نستخدمها لنعبر عن أفكارنا ومشاكلنا ونتواصل بها مع الآخرين
هذه مقدمة سريعة. يجب أن أذهب الآن و لكن هل هناك من يريد أن يتعلم الجافا لأدخل في الموضوع تعلم لغة الجافا
[/size]

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 0
تاريخ التسجيل : 11/04/2008

مُساهمةموضوع: رد: كيف اتعلم لغة الجافا java   الثلاثاء أكتوبر 20, 2009 4:43 pm

الكمبيوتر
ليس مجرد آلة ولكنه يميل أكثر إلى أن يكون أداة تحاكي العقل. والكمبيوتر
هو أداة للتعبير مثل الكتابة والرسم وفن النحت وصناعة الأفلام، وال Object
Oriented Programming هي خطوة كبيرة لرؤية الكمبيوتر كوسيلة للتعبير أكثر
منه كمجرد آلة.
كل لغات البرمجة هي تجريد أو تبسيط لشيء ما
ولكن كيف نستطيع أن نتواصل مع الكميبوتر؟ إن مجموعة الأوامر أو الشفرات التي يستطيع أن يفهمها الكمبيوتر مباشرة وبدون ترجمة تسمى ال machine code أي شفرة الآلة. أي أن الmachine code
هي اللغة الأساسية للكمبيوتر وهي مجموعة من الأوامر التي يفهما الكمبيوتر
مباشرة بدون مترجم وينفذها مباشرة. ولكل نوع من الكمبيوتر أو بدقة أكثر
لكل CPU ال machine code الخاصة به. ولكن ما هي الحروف التي تتكون
منها كلمات هذه اللغة؟ إنها تتكون فقط من حرفين وهما ال 0 و 1 . فمثلا قد
يكوا هناك أمر في الصورة 01101 وأمر آخر مثل 01110.
بالطبع من الصعب جداً كتابة برنامج بال machine code ولهذا جاءت لغة ال Assembly كتجريدabstraction أو لنقول لغة أسهل فهما من ال machine code ، فلغة الAssembly
تتكون من أوامر مثل الmachine code ولكن بدلا من أن تكون الأوامر في صورة
0 و 1 فأنها في صورة حروف سهلة الفهم و التذكر مثل الأمر ADD مثلاً.
ومع الحاجة لبرامج أكثر تعقيداً ظهرت لغات أخرى كثيرة فيما بسمى بلغات
الأوامر Imperative languages مثل السي Cو البيسك BASIC , و الفورتران ،
فكل هذه اللغات هي تجريد للغة ال Assembly أي جيل جديد من اللغات الأسهل فهما و إستخدام .
ولكن لاحظ معي هنا أن كل هذه التحسينات لازالت تجعلك تفكر في الكمبيوتر
كمجرد آلة لها مجموعة من أذرار التشغيل مثل التلفاز و غسالة الأطباق أكثر
من تفكيرك في المشكلة أو النظام الذي تريد أن تحاكيه.
فالمبرمج هنا يحتاج أكثر إلى أن يربط مشكلة أو نظام ما بأوامر الكمبيوتر
وهذا يحتاج إلى مجهود كبير جدا كما إن هذه البرامج ستكون صعبة ومكلفة في
صيانتها.
فالمطلوب هو أن نكتب أشياء تمثل وتعبر عن المشكلة التي نريد حلها أكثر من
أن نكتب مجموعة من الأوامر الخاصة بالآلة. ولهذا ظهرت لغات مثل LISP و ال APL و هي لغات إختارت رؤية محددة لمجموعة من المشاكل ، ثم ظهرت لغة الPROLOG و
التي كانت ترى أن البرنامج هو مجموعة من القرارات المنطقية. و هذه اللغات
كانت تقدم حلول جيدة جداً في نطاق المشاكل التي صممت لحلها ولكنها ضعيفة
لحل مشكلات خارج هذا النطاق.
ثم ظهر لغات ال Object Oriented Programming أي البرمجة التي تميل لمحكاةالشيء مثل السي بلس بلس و الجافا والسي شارب ، بالطبع المصطلح يحتاج إلى تفسير أكثر لنفهم المراد منه.

ما هو الObject ؟

ال Object أي الشيء هو المفتاح لفهم ال OOP أي ال Object Oriented Programming
، فعندما تنظر حولك فإنك تستطيع أن ترى أشياء كثيرة (أي Objects كثيرة) في
العالم الحقيقي مثل مكتبك و شاشة كمبيوترك و دراجتك و قلمك و كرتك إذا كنت
تحب كرة القدم مثلي. الأشياء الموجودة في العالم الحقيقي تشترك كلها في
صفتان: كل الأشياء لها حال state (أو لنقول صفات حالية) و لها سلوك behavior فمثلا
الكلب له حالة مثل الإسم (إسمه هرقل) و اللون (لونه بني) و جائع ، وله
سلوك مثل يهز ذيله و يشمشم في الأرض . و الدراجة مثلا لها حالة مثل الترس
الحالي و نوع البدالات و لها عجلتان و لها عدد من التروس يساوي 20 ،
وللعجلة سلوك أيضاً فإنها تفرمل وتسُرع و تبطيء.
تمثيل الأشياء (Objects) في البرمجة يشترك مثل الأشياء في العالم الحقيقي في إنه لها أيضاً حالة (صفات حالية) وسلوك.
ال Object في البرمجة يعبر عن الحالة عن طريق متغير أو أكثر. المتغير Variable هو معلومة لها إسم نعرفها به و المتغير له نوع (type) مثل أن يكون رقما صحيحاً Integer أو حرف char
و الObject في البرمجة يعبر عن السلوك عن طريق ال Function أي الوظيفة أو الخدمة التي يستطيع أن يقدمها.
أي أن الObject هو مجموعة من المتغيرات و الوظائف المرتبطة.
فبإستخدام ال Objectsفي البرنامج نستطيع أن نحاكي ونمثل الأشياء في العالم
الحقيقي ،من الممكن أن نعبر عن اللاعبين في صورة Objects في لعبة كمبيوتر
مثل الFifa.
كل شيء يستطيع أن يعرفه الObject هو حالة state يمثلها عن طرق المتغيرات Variables و أي شيء يستطيع أن يفعله هو وظيفة Function (سنستخدم كلمة method بدلاً من كلمة Function )
فمثلا نستطيع أن نعبر عن الدراجة بمجموعة من المتغيرات مثل أن سرعتها 30
كيلومتر في الساعة و سرعة دوران العجلة هي 90 لفة في الدقيقة و لها خمسة
تروس. هذه المتغيرات تعرف بInstance variables أي المتغيرات التي تعبر عن
Object محدد ، فمثلا أنا وأنت بشر ولكن أنا لي أنا أسمي هاني و أنت إسمك
محمد (مثلا) فلكل منا المتغير ( إسم) ولكن القيمة التي يحملها هذا الإسم مختلفة. أتمنى أن يكون المفهوم بstate أي الحالة قد إتضح.
والدراجة أيضا لها methods لتفرمل وتسرع و.... هذه ال methods تسمى ب instance methods وذلك لأن هذه ال methods تغير في الحالة state أي قيم المتغيرات الخاصة ب object محدد. فمثلا عندما نطلب ال method التي إسمها أسرعي في
دراجتي فإن سرعتها قد تغيرت وأصبحت 40 كيلومتر بدلا من 30 كيلومترا
وبالطبع هذه التغير غير قيمة السرعة أي هو تغير أثر في دراجتي ولم يؤثر في
دراجات أخرى.
الآن نستطيع أن نقول أن ال Object Oriented Programming هو البرمجة التي بها نستطيع أن نحاكي الأشياء الموجودة في العالم الحقيقي في صورة Objects لها حالة state و سلوك behavior، و نستطيع أن نقول أن حالة = instant variables و السلوك = instance methods
أي أن ال Object Oriented Programming هي البرمجة التي تميل ناحية كتابة
البرنامج عن طريق وصف الأشياء أكثر من كتابة أوامر ومصطلحات خاصة بالآلة.
مع ال OOP المبرمج ليس مقيد بأنواع ثابتة من المتغيرات مثل integer ,
char, WORD بل إنه يستطيع أن يُعرف أنواع جديدة و يُخلّق متغيرات من هذه
الأنواع الجديدة.
كما قلنا فإننا نستطيع أن نعرف Objects كل منها له حالته فأنا لي إسمي و
وظيفتي وهوايتي و لكن هناك الكثيرون أيضا بشر مثلي لنا صفات وسلوك مشترك
فنحن ننتمي إلى عائلة البشر وهناك عائلات أخرى من الأشياء الأخرى فهناك
عائلة الكلاب وعائلة الأسماك وعائلة السيارات وهكذا.
فالobjects التي تنتمي لنفس العائلة لها صفات مشتركة و أيضا لها سلوك مشترك.
كلمة عائلة تعني أيضاً نوع وفي الOOP نكتبها class ،وقد كان أول ظهور لهذا المصطلح كان في لغة ال Simula-67 .
فمثلاً إذا كتبنا برنامج عن المدارس ستكون ال classes هي : المدرسون والطلبة و المواد الدراسية، أما الأستاذ أحمد والأستاذة أمل فهم objects من النوع (class)
المدرسون ،و أما الفيزياء و الرياضيات فأنها Objects من ال class مواد
دراسية . قد تسألني وأين ال objects من ال class الطلبة ؟يبدو إنهم في
أجازة الآن .
بالطبع كل الobjects التي تنتمي لنفس ال class صفات مشتركة فالمدرسون
صفاتهم تكون : المادة التي يدرسها، وأرقام الفصول التي يدرس لها و إسم
المدرس ، أما ال objects التي تنتمي إلى ال class المدرسون فلكل منهم
المادة التي يدرسها فأستاذ أحمد يدرس الرياضيات والفصول التي يدرسها فهي
الفصول 1 و 2 من السنة الدراسية أولى ثانوي، أما الأستاذة أمل فإنها تدرس
مادة الفيزياء وتدرس لكل فصول الصف الثاني الثانوي.
بالطبع المدرسون لهم سلوك أو خدمات يقدمونها methods مثل يدرس و يصحح ،
والobjects هنا تقدم هذه الخدمات ولكن حسب المادة التي يدرسها.
لذا ففي ال OOP فأننا نُعرف أنواع جديدة classes مثلما و نُخلِّق منها objects مثلما نُخلِّق متغيرات variables من الأنواع الأساسية التي تكون جزء من اللغة و التي تسمى built in types مثل ال integer و char .
لذا ال class هي أيضاً types ولكنك أنت الذي يعُرّفها.
لنفترض أنه عندنا class إسمها مصباح Light من والmethods التي تقدمها هي ينير on و يغلق off
فكيف نعبر عن هذا في الجافا


كود:

Light mesbah = new Light();
mesbah.on();
mesbah.off();




فهنا قمنا بتعريف object إسمه mesbah (مصباح) من ال class التي أسمها
Light، ولكي يتم تخليق هذا المتغير فأستخدمنا ال مصطلح new ثم كتبنا إسنم
ال class ثم ننهي الأمر بإستخدام فصلة منقوطة.
ولكي نقوم بطلب خدمة on أي يضيء على المصباح فقد كتبنا اسم الobject مصباح ثم نضع نقطة (.) ثم نكتب إسم ال method (الخدمة) التي نريدها كما في السطر الثاني.
سنكتفي بهذا القدر من الدرس حتى أعرف رأيكم في شرحي و هل تريدون كماً أكثر من المعلومات في الدروس القادمة؟
الواجب العملي هو أن تجيبوني على السؤالين السابقين وأن تقوموا بكتابة code مثل السابق ولكن على class إسمها (كمبيوتر).
في الدرس القادم سنتعرف على بقية خواص ال Object Oriented Programming مثل ال access control و ال inheritance و ال polymorphism

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 0
تاريخ التسجيل : 11/04/2008

مُساهمةموضوع: رد: كيف اتعلم لغة الجافا java   الثلاثاء أكتوبر 20, 2009 4:44 pm

تكلمنا في الدرس السابق عن الobjects وعرفنا أن كل ال objects التي تنتمي لنفس ال class يشتركون في نفس الصفات (variables) والسلوك (methods) و الآن بإذن الله سنكمل باقي خواص ال Object Oriented Programming التي تمثل الأساس لكتابة برامج قوية ومتميزة .
ما هو ال Inheritance؟
يوجد في علوم الأحياء علم إسمه التصنيف العلمي (Scientific Classification) وفيه يقوم العلماء بتصنيف الكائنات الحية وترتيبها طبقاً للخواص المشتركة. أول نظام للتنصيف قام به أرسطو الذي صنفها على أساس بيئتها , وقد ترجم ابن رشد تصنيف أرسطو في كتاب مفقود وبقيت الترجمة اللاتينية لكتاب ابن رشد. و التصنيف الحديث تعود جذوره إلى نظام كارلوس لينيوس, الذي صنف الأنواع طبقا للخواص الفيزيائية المشتركة.
يبدأ التصنيف الرئيسي بتسلسل مملكه ، شعبة ، طائفة ، رتبة ، عائلة ، جنس ،
نوع . بعد ذلك أضيف فوق رتبة ، تحت رتبة ، فوق طائفة ، تحت طائفة ، قبيلة
. وتصنيفات أخرى.

فمثلا الإنسان ينتمي لمملكة الحيوان (Animalia) ومن صفات هذه المملكة أن الكائنات فيها متعددة الخلايا multicellular أي إنها كائنات تتكون من أكثر من خلية و إذا تدرجنا في شجرة الحياة للإنسان فسنجده ينتمي إلى طائفة (class)أسمها الثديات (Mammaila)
والتي ينتمي إليها كل الحيوانات و من صفات هذه الطائفة أن الكائنات التي
تنتمي إليها تلد صغاراً و ترضعهم أمهاتهم اللبن عن طريق الثدي. وينتمي
الإنسان أيضاُ إلى تحت طائفة (subclass) إسمها placentalia و التي من صفاتها أن الطفل في مرحلة الحمل يتغذى عن طريق المشيمة.

فالإنسان يرث صفات وسلوك ال تحت طائفة
(subclass) التي تسمى placentalia وبالتالي يرث صفات وسلوك الطائفة
(class) التي أسمها Mammaila وبالتالي يرث صفات وسلوك المملكة Animalia.
وكما نري فإن التصنيفات العليا أي التي تتجة ناحية جذر الشجرة مثل المملكة
تحتوي على صفات عامة و كلما تدرجنا ناحية فرع الشجرة كلما كانت الصفات و
السلوك أكثر تخصصاً مثل صفات وسلوك الإنسان.
مفهوم ال Inheritance في OOP ينطبق عليه نفس الكلام السابق. فال class من الممكن أن ترث صفات و سلوك class أخرى. وال class التي ترث نسميها subclass و الclass التي يورث منها تسمى superclass وكما نلاحظ فهذة المسميات جاءت من علم التصنيف.
وفي الجافا من الممكن أن ترث ال class مباشرة من class واحدة فقط ولكنها تستطيع أن ترث من أكثر من class بطريقة غير مباشرة.
فلو قلنا أن الشجرة التي في الصورة السابقة هي شجرة كاملة (هي غير كاملة
بالطبع) فإننا نقول أن ال subcalss التي تسمى placentalia ترث صفات ال
class التي تسمى Mammaila بطريقة مباشرة و ترث صفات المملكة Animalia
بطريقة غير مباشرة.
وكما نرى فإن ال subclass ليست محدودة بصفات ال superclass التي ترث منها
بل تزيد عليها صفات وسلوك . في الجافا فإن ال superclass العليا في شجرة
الوراثة أي الجذرهي ال class التي تسمى Object.
ال class Object ليس لها علاقة بمعنى object الذي تكلمنا عنه بل هي class
وإسمها Object. وطالما أن جذر الشجرة في الجافا هي Object class فإن كل ال
classes ترث سلوك وصفات هذه ال class مثل السلوك (method) toString و التي ترجع String (تتابع من الحروف) والتي تصف ال class.
لو رجعنا لعلم التصنيف و أردنا أن نعرف class تكون هي الجذر لكل الأشياء
سواء حية أو غير حية فما هي ال methods التي ستكون في هذه ال class؟
أعتقد إنها ُتسَبِّحُ.
يقول تعالى ( ُتسَبِّحُ لَهُ السَّمَاوَاتُ السَّبْعُ وَالأَرْضُ وَمَن
فِيهِنَّ وَإِن مِّن شَيْءٍ إِلاَّ يُسَبِّحُ بِحَمْدَهِ وَلَـكِن لاَّ
تَفْقَهُونَ تَسْبِيحَهُمْ إِنَّهُ كَانَ حَلِيماً غَفُوراً)
إن مميزات ال Inheritance هي:

  • ال subclasses نستخدمها لنحصل على سلوك وصفات أكثر تخصصا من ال superclass التي سلوكها عاما
  • في البرامج الكبيرة يشترك أكثر من مبرمج في كتابة البرنامج ومن الممكن أن يكتب أحد المبرمجين abstract classes
    أي classes تجريدية بمعنى إنها تشتمل على سلوك عام وعلى المبرمجين الآخرين
    أن يقوموا في ال subclasses بكتابة الكود الخاص بهذه السلوك (methods)
    فمثلا في برنامج صناع الحياة قام المبرمج عمرو خالد بعمل ال abstract class التي إسمها نهضة و ال methods التي تنتمي لها هذه ال class هي (مثلا) : تنهض بالأمة و تتفوق و تبدع و تصمم و تنتج
    وعلى المبرمجين المشتركين في برنامج النهضة أن يكتبوا subclasses ترث من ال class نهضة و يقوموا بكتابة ال الكود الخاص بال methods التي تنتمي لل class نهضة. فمنهم من يكتب ال class زراعة الأسطح ومنهم من يكتب class النهضة الصحية وهكذا...
ما هو ال access control؟
لقد خلق المبدع والأول والآخر سبحانه الclass الإنسان وجعل
له صفات (members = variables) من عينين وأنف وأذن و قلب و الكثير من
الصفات الأخرى وقد جعل الله هذه الصفات من الممكن أن نصل لها ونمسكها
فنستطيع أن نمسك أعيننا و هناك الطبيب الجراح الذي يمسك القلب بيديه فهذه
الصفات يستطيع أن يصل لها أي شيء فهي عامة (public) ، وخلق الله أيضاً
صفات (members) في الإنسان مثل الروح ولكننا لانستطيع أن نصل لها و نمسك
بها. يقول تعالى (و يسألونك عن الروح قل الروح من أمر ربي) فهي صفات خاصة
(private) ممنوع أن تصل لها أي (class) أخرى . و تخيل لو كانت الروح من
الممكن أن نصل لها ونمسكها مثل العين فكما إنه هناك من تمرض عينه فيقوم
بنقل عين إنسان آخر فلو كانت الروح من الممكن أن نصل لها (public) لوجدنا
من لاتعجبه روحه فينقل ويستبدل روح إنسان آخر ! إذن فهناك (members) في ال
class تكون public وأخرى private لاتستطيع class أخرى أن تصل لها مباشرة.
ولكن قد يقوم صانع ال class بعمل methods تؤثر في هذه ال private members
ودون أن تصل لها. فمثلا جعل الله الخالق العظيم methods في الإنسان يستطيع
بها أن يؤثر في الروح ومن هذه ال methods يصلي و يزكي ويصوم و....
في الجافا يستطيع ال class creator أن يحدد قواعد الوصول (access control) لل members في ال class من variables و methods. هذه access control هي : publicو private و protected و ال package access (default).
وسنتكلم عنهم بالتفصيل في دروس قادمة عند شرح الكود.
ما هو ال Interface ؟
في الكمبيوترات الحديثة توجد ال USB والتي نستطيع عن طريقها أن نوصل
الكثير من الإجهزة للكمبيوتر مثل الطابعات و الكاميرات. ومن الممكن أن
نخترع أي جهاز ونوصله بالكمبيوتر عن طريق ال USB .
في الجيش توجد رتب مختلفة وهذه الرتب تتكلم مع بعضها بقواعد وبروتوكول
محدد. إذن لنجعل ال classes المختلفة تتكلم وتتفاعل مع بعضها البعض لابد
من برتوكول يحدد طريقة الإتصال. فالكمبيوتر لايهمه نوع الجهاز المتصل به
فالمهم أن يكون هذا الجهاز فيه إمكانية الإتصال بالكمبيوتر عن طريق الUSB
. هناك مواقع على الإنترنت من classes مختلفة فمنها ما هو PHP و منها ASP
ومنها JSP ولكي نعرض هذه المواقع بمتصفح الإنترنت فالمتصفح لا يهمه ال
class التي ينتمي لها هذا الموقع فالمهم فقط هو أنها تستطيع أن ترسل
الHTML عن طريق بروتوكول ال HTTP. هذا البروتوكول المستخدم في الإتصال بين
ال objects من classes مختلفة يسمى interface.
فعندما نريد أن نجعل classes كثيرة تتكلم مع class أخرى فعلى هذة ال classes أن تحتوي على ال methods الموجودة في ال interface الذي يحدد طريقة الإتصال.
الدرس القادم سنبدأ تعلم مكونات الجافا وكتابة كود ال java.
الواجب العملي:
تخيل إنه توجد class إسمها سيارة فما هي ال vairables, and methods التي
توجد بها و أي منها public وأي منها private و ما هي ال subclasses التي
نقترحها للclass سيارة؟ ويوجد ماركت كبير لبيع السيارات و القوارب و
الالأدوات الرياضية فما هي ال methods التي يجب أن تكون موجودة في ال
interface الذي ستحتوية هذه ال classes ؟
في إنتظار ردودكم

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 0
تاريخ التسجيل : 11/04/2008

مُساهمةموضوع: رد: كيف اتعلم لغة الجافا java   الثلاثاء أكتوبر 20, 2009 4:44 pm

لغة
الجافا مثل اللغات التي نتكلم بها لها قواعد نحوية. ولكن ما هي فائدة
القواعد في اللغة؟ إن قواعد النحو في اللغة تعطي الناس قدرة أفضل على
الإتصال و تحسين مهارات التفكير فإنها تجعلك منصت ومتكلم و قاريء وكاتب
بكفاءة كبيرة.
اللغة تكون بين متكلم ومستمع أو كاتب وقاريء. بالنسبة للجافا فأنت المتكلم
و الكاتب أما المستمع والقاريء فهو الكمبيوتر. ولكي نستطيع أن نوصل
أفكارنا للكمبيوتر ونجعله يفهمها وأيضا حتى تكون أفكارنا أكثر وضوحا فيجب
أن نلتزم بقواعد لغة الجافا.
إقرأوا معي البرنامج BasicDemo التالي وهو منقول من موقع sun :

كود:

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 ما هي المتغيرات وما هي أنواعها؟
والسلام

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 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

الواجب العملي:
يوجد دوري مكون من ثلاثة فوق و كل فريق سيقابل الفريق الآخر مرتين ولكن في يومين مختلفين.
وكل يوم سيقابل كل فريق الفريقين الآخرين.
المطلوب تعريف و تخليق وملأ مصفوفة تعبر عن الفرق التي سيقابلها كل فريق لكل يوم في البطولة.
والسلام

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 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


إنشاء الله سيتم كتابة الإجابات للدرس السابق و أسئلتكم قريباً

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
Admin المديرعماد الصنوي
Admin
Admin
avatar

ذكر عدد الرسائل : 2449
الموقع : http://emaddobay-alsanwy-yemen.blogspot.com/
العمل/الترفيه : طالب student
نقاط : 6521
السٌّمعَة : 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

_________________
لا تأسفن على غدر الزمان لطالما رقصت على جثث الأسود كلابا

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ابو صقر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alsina.forumieren.de
 
كيف اتعلم لغة الجافا java
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» المكون الإضافى لجوجل خروم برنامج Java
» java 6 .15
» برنامج java للكمبيوتر للدردشة

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
Forum Alsina منتدى الصنه ( Emaddobay-Yemen Alsanwy) منتدى الصنه Forum Alsina  :: الفئة الأولى :: منتديات التقنية Technical forums :: كمبيوتر وبرامج The computer programs-
انتقل الى: