M.Alkahtani
28/1/2006, 06:05
بسم الله الرحمن الرحيم
في الدورة ان شاء الله بنتلعم أمور كثيرة في لغة الجافا .
لماذا أخترت شرح لغة جافا؟
أولاً لأهميتها و ستتضح هذه الأهمية مع المقدمة
ثانياً لعدم وجود مصدر عربي يشرح الجافا
الموقعين الجيدين هما
www.javagirl.ws للعضوه (JavaGirl) التي أتمنى منها المساعده في هذه الدورة و لكن للأسف الموقع لا يعمل!
http://www.geocities.com/alyaa97/jom002.html
و للأسف كلا الموقعين يتفقرون لبعض الأساسيات
تنبيه : الرجاء الرد في صلب الموضوع كسؤال عن دالة أو برنامج أو إجابة لبرنامج الردود الغير مفيدة الرجاء تجنبها
بسم الله نبداء
الجافاhttp://foundationstone.com.au/HtmlSupport/javalogo52x62.gif : هي لغة برمجه أخترعت عام 1995 على يد James Gosling و Henry McGilton(أسكتلندي (himo) ) و فريق عمل مكون من الاف الأشخاص في شركة Sun سميت بالجافا بعد أجتماع James Gosling مع مجموعه من فريق العمل في أحد المقاهي فتوارد الى أذهانهم أسم Java وهي القهوه المشهورة فسميت اللغة بهذا الأسم ولو لاحظت شعار جافا لوجدت أنه يحمل شعار فنجان القهوه.
لماذا تم أختراع لغة جديدة الا تكفي اللغات الموجودة للبرمجه؟
كان الهدف عند أختراع جافا هو لغة قادرة على برمجة نظم لتشغيل جميع الأجهزه من كمبويترات عملاقة (mainframes) الى الأجهزه الصغيرة مثل مشغلات MP3
لماذا الجافا مهمه؟
شركة صن Sun يصفون الجافا كالتالي : لغة بسيطة (Simple) و شيئية (Object-Oriented) وموزعة (Distributed) و مفسرة (Interpreted) و قوية (Robust) و محمية (Secure) و ذات بنيان متعادل (Architecture Neutral) وقابلة للتغيير (Portable) و عالية الأداء (High-Performance) و متعددة الوظائف (Multithreaded) و لغة دينامكية (Dynamic Language)
سنمر بالتفصيل على كل كلمة!
أولاً: لغة بسيطة (Simple)
جافا لغة بسيطة بالفعل فمصممين اللغة حاولوا جعلها لغة يتعلمها المبرمج بسرعة فلو كنت مبرمج لغة C/C++ ستجد أن معظم الأوامر متشابهه مصموا اللغة أزالوا بعض من الخصائص الموجودة في C/C++ عن لغة جافا لجعها صغيرة و بسيطة فعلى سبيل المثال جافا لا تدعم goto و وضعوا بديل لها break و continue يمكن يكون أكبر تبسيط في اللغة هو أنها لا تحتوي على مؤشرات Pointer لأن أغلب الأخطاء في البرمجة بالمؤاشرت فجافا اوتماتيكياً تعامل المؤاشرت بطريقتها الخاصة فتصنف الكائن و تلغي المؤشر الغير موجود.
شيئية (Object-Oriented)
اللغة صممت أساساً على أنه تكون شيئية على هذا الأساس أنت كمبرمج يجب عليك التركيز على البيانات و الطرق(Methods) (ال functions و ال procdure تسمى في جافا methods) في اللغات الشيئية ال class مجموعة من البيانات و الطرق التي تعمل على هذه البيانات، البيانات و الطرق تعرف حالة الكائن (Object)
جافا أتت بمجموعه من ال Classes مرتبة في packages تستطيع أستخدامه في برامجك مثل java.awt مجموعة من ال classes لتكوين النوافذ لبرنامج (graphical user interface)
معظم الأشياء في جافا ممثله ب classes ماعدى ال Character و Boolean و Numeric فال String عبارة عن Class
موزعة (Distributed)
عندما نقول لغة موزعه فمعناها أنها تقدم تدعم للشبكات جيد و مما أذهلني في الجافا قدرتها على تقديم دعم عالي جداً للشبكات فعلى سبيل المثال URL عبارة عن Class هو و مجموعة كلاسات في رزمة java.net تسهل عليك الأمر جداً فقراءة ملف في جهاز آخر في الشبكة كقراءة ملف في جهازك المحلي تكمن قوة جافا في هذه النقطة في (Remote Method Invocation) هو عبارة عن API لتشغيل الطرق من كائن في الشبكة كما لو أنها في جهازك
العمليه نوعاً ما معقدة لكن سنحاول شرحها لاحقاً
مفسرة (Interpreted)
عندما نعمل compile لبرنامج جافا فأنه يعطينا byte-code يقرئه ال Java Virtual Machine لغات البرمجه الأخرى تعطيك Machine code أي Assembly
ببساطة تلاحظ أنه عندما تريد أن تشغل برامج جافا يتطلب أن يكون في جهازك مشغل الجافا JVM طبعاً هذا له فوائد كثيرة بنستعرضها في الفقرة Portable
قوية (Robust)
عندما نطلق على برنامج أنه Robust فهذا معناه أنه لا يفشل عند محاولة تشغيله
لكن عندما تطلق الشيء نفسه على لغة فمعناته أن اللغة تحد من وجود الأخطاء في البرامج بأتخاذ الإجراءت اللازمة لجعل البرمجه بهذه اللغة لا يمكن أن تنتج برامج يحتوي أخطاء
نعم ما زال ممكن أن يكون هناك أخطاء في برامج الجافا و لكنها محدودة جداً فمثلاً عندما قلنا في البداية أن جافا لا تحتوي مؤاشرات فهو للحد من الأخطاء البرمجية.
محمية (Secure)
بلا شك أن جميعنا يعلم أن ال applets مبرمجة بالجافا و تحتاج الى وجود ال JVM لتشتغل في اليوم الواحد تمر بمواقع عدة بعضها يحتوي على applets فمن الممكن أن يكون هذا البرنامج برنامج خبيث ليضر بجهازك عند تصميم الجافا أخذ في الحسبان الحماية و وضع لها عدة طبقات لحماية الجهاز من البرامج الخبيثة و الأكواد الغير صحية فعلى سبيل المثال لا يمكنك أن تقراء من الذاكرة مباشرة.
ذات بنيان متعادل (Architecture Neutral) وقابلة للتغيير (Portable)
أجمل ميزة في الجافا أنها تشتغل على جميع الأجهزه لا تأخذ في الحسبان أي نظام تشغيل ذلك الجهاز يشغل كل ما عليك هو كتابة برنامج و بدون أي تغير في البرنامج بأمكانه العمل على وندوز أو لينكس أو ماكنتوش!!! كيف يتم ذلك
كل هذا بفضل ال Byte-Code و JVM فجافا لا تحول البرنامج الى لغة الالة أنما تحوله الى ما يسمى Byte-Code و لكي يشتغل البرنامج فيجب توفر JVM في الجهاز الذي بدوره يقراء ال Byte-Code و يحوله الى ما يتناسب مع نظام التشغيل. مقولة مشهوره (Write Once, Run Anywhere) أكتب مره واحده وشغل في أي مكان مختصه بالجافا.
عالية الأداء (High-Performance)
إذا جينا نقارن سرعة الجافا مع C بنلاحظ أن جافا أبطىء بعشرين مره تقريباً لأنه تحول الى Byte-Code ثم الى لغة الألة بينما C الى لغة الألة مباشرة. لكن لو قارنا ما تقدمه من أداء بالنسبه الى اللغات الأخرى فنجد أنها في الوسط فمثلاً TCL لغة Portable و جيدة لعمل البرامج التمثيلية Prototyping و لكنها بطيئة جداً ال C سريعه و لكنها تفتقد لل Portability و Reliability (سهولة التغير و الأعتمادية) بالنسبة لجافا فهي في الوسط فهي Portability و Reliability كما أنها ليست ببطء TCL أو UNIX shells
متعددة الوظائف (Multithreaded)
لو كان لديك عدة مهمات تريد عملها في نفس الوقت فأن جافا تتيح لك ذلك من خلال قدرتها على تشغيل أكثر من مهمه في نفس الوقت. كما أنها تتيح لك بكلمة synchronized التحكم بجزيئة من البرنامج بحيث يعمل في وقت محدد.
لغة دينامكية (Dynamic Language)
أي كلاس class في الجافا بأمكانك تحميله للمترجم في أي وقت.
<h1>1-إعداد بيئة العمل</h1>
يجب عليك تحميل نسخة جافا من موقع sun على الرابط التالي : http://192.18.97.120/ECom/EComTicketServlet/BEGIN0CD13D613B1FB938CCAD55D13E164532/-2147483648/1147585131/1/646394/646226/1147585131/2ts+/westCoastFSEND/jdk-1.5.0_05-oth-JPR/jdk-1.5.0_05-oth-JPR:2/jdk-1_5_0_05-windows-i586-p.exe
بعد ذلك أضغط دبل كلك على الملف ليتم التشغيل أختر مكان البرنامج و ليكن C:\jdk1.5 بعد الانتهاء من تنصيب البرنامج يجب عليك تعريف بيئة العمل عن طريق الضغط على جهاز الكمبيوتر (My Computer) بالماوس الأيمن
ثم أختيار خصائص (Properties) ثم أختيار متقدم (Advanced) بعد ذلك أختيار زر متغيرات البيئة (Environment Variables) كما في الشكل 1.1
http://telecom.alhilalclub.com/Lessons/Java/1/image001.png
<p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed"><i>الشكل 1.1 متغيرات البيئة لـ ويندوز XP</i></p>
بعد ذلك أضف المتغيرين
1. path و أعطه القيمة C:\jdk1.5\bin
2. classpath و أعطه القيمة . (نقطة) كما في الشكل 1.2
http://telecom.alhilalclub.com/Lessons/Java/1/image003.png
<p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed"><i>الشكل 1.2 إضافة متغيرات البيئة لـ ويندوزXP</i></p>
بعد الانتهاء من إعداد بيئة العمل ستجد في مجلد My Documents مجلد My Java files لتضع به ملفات الجافا الخاصة بك و البرامج التي تتطبقها عملياً في هذه الدروس.
<h1>1.1***** تشغيل البرنامج الأول</h1>
أفتح المذكرة أو أي برنامج تحرير نصوص و أطبع البرنامج التالي:
http://telecom.alhilalclub.com/Lessons/Java/1/image006.gif
أحفظ الملف بالاسم HelloWorld.java في مجلد My Java files
ملاحظة: الحروف الكبيرة و الصغيرة حساسة في جافا الملف يأخذ نفس أسم ال Class
أفتح موجه الأوامر MS DOS أطبع التالي :
CD My Java files
Javac HelloWorld.java
Java HelloWorld
ملاحظة : جملة Javacلعمل compile للملف و جملة java لتشغيل الملف
الشكل 1.3 يوضح العملية السابقة
http://telecom.alhilalclub.com/Lessons/Java/1/image007.png
<p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed"><i>الشكل 1.3 طريقة تشغيل ملف جافا</i></p>
كما هو متوقع ناتج البرنامج طباعة الجملة World Hello سنرجع بالتفصيل لشرح هذا المثال الآن كل ما عليك معرفته هو أن بيئة التشغيل سليمة و لا يوجد أي أخطاء.
في الدورة ان شاء الله بنتلعم أمور كثيرة في لغة الجافا .
لماذا أخترت شرح لغة جافا؟
أولاً لأهميتها و ستتضح هذه الأهمية مع المقدمة
ثانياً لعدم وجود مصدر عربي يشرح الجافا
الموقعين الجيدين هما
www.javagirl.ws للعضوه (JavaGirl) التي أتمنى منها المساعده في هذه الدورة و لكن للأسف الموقع لا يعمل!
http://www.geocities.com/alyaa97/jom002.html
و للأسف كلا الموقعين يتفقرون لبعض الأساسيات
تنبيه : الرجاء الرد في صلب الموضوع كسؤال عن دالة أو برنامج أو إجابة لبرنامج الردود الغير مفيدة الرجاء تجنبها
بسم الله نبداء
الجافاhttp://foundationstone.com.au/HtmlSupport/javalogo52x62.gif : هي لغة برمجه أخترعت عام 1995 على يد James Gosling و Henry McGilton(أسكتلندي (himo) ) و فريق عمل مكون من الاف الأشخاص في شركة Sun سميت بالجافا بعد أجتماع James Gosling مع مجموعه من فريق العمل في أحد المقاهي فتوارد الى أذهانهم أسم Java وهي القهوه المشهورة فسميت اللغة بهذا الأسم ولو لاحظت شعار جافا لوجدت أنه يحمل شعار فنجان القهوه.
لماذا تم أختراع لغة جديدة الا تكفي اللغات الموجودة للبرمجه؟
كان الهدف عند أختراع جافا هو لغة قادرة على برمجة نظم لتشغيل جميع الأجهزه من كمبويترات عملاقة (mainframes) الى الأجهزه الصغيرة مثل مشغلات MP3
لماذا الجافا مهمه؟
شركة صن Sun يصفون الجافا كالتالي : لغة بسيطة (Simple) و شيئية (Object-Oriented) وموزعة (Distributed) و مفسرة (Interpreted) و قوية (Robust) و محمية (Secure) و ذات بنيان متعادل (Architecture Neutral) وقابلة للتغيير (Portable) و عالية الأداء (High-Performance) و متعددة الوظائف (Multithreaded) و لغة دينامكية (Dynamic Language)
سنمر بالتفصيل على كل كلمة!
أولاً: لغة بسيطة (Simple)
جافا لغة بسيطة بالفعل فمصممين اللغة حاولوا جعلها لغة يتعلمها المبرمج بسرعة فلو كنت مبرمج لغة C/C++ ستجد أن معظم الأوامر متشابهه مصموا اللغة أزالوا بعض من الخصائص الموجودة في C/C++ عن لغة جافا لجعها صغيرة و بسيطة فعلى سبيل المثال جافا لا تدعم goto و وضعوا بديل لها break و continue يمكن يكون أكبر تبسيط في اللغة هو أنها لا تحتوي على مؤشرات Pointer لأن أغلب الأخطاء في البرمجة بالمؤاشرت فجافا اوتماتيكياً تعامل المؤاشرت بطريقتها الخاصة فتصنف الكائن و تلغي المؤشر الغير موجود.
شيئية (Object-Oriented)
اللغة صممت أساساً على أنه تكون شيئية على هذا الأساس أنت كمبرمج يجب عليك التركيز على البيانات و الطرق(Methods) (ال functions و ال procdure تسمى في جافا methods) في اللغات الشيئية ال class مجموعة من البيانات و الطرق التي تعمل على هذه البيانات، البيانات و الطرق تعرف حالة الكائن (Object)
جافا أتت بمجموعه من ال Classes مرتبة في packages تستطيع أستخدامه في برامجك مثل java.awt مجموعة من ال classes لتكوين النوافذ لبرنامج (graphical user interface)
معظم الأشياء في جافا ممثله ب classes ماعدى ال Character و Boolean و Numeric فال String عبارة عن Class
موزعة (Distributed)
عندما نقول لغة موزعه فمعناها أنها تقدم تدعم للشبكات جيد و مما أذهلني في الجافا قدرتها على تقديم دعم عالي جداً للشبكات فعلى سبيل المثال URL عبارة عن Class هو و مجموعة كلاسات في رزمة java.net تسهل عليك الأمر جداً فقراءة ملف في جهاز آخر في الشبكة كقراءة ملف في جهازك المحلي تكمن قوة جافا في هذه النقطة في (Remote Method Invocation) هو عبارة عن API لتشغيل الطرق من كائن في الشبكة كما لو أنها في جهازك
العمليه نوعاً ما معقدة لكن سنحاول شرحها لاحقاً
مفسرة (Interpreted)
عندما نعمل compile لبرنامج جافا فأنه يعطينا byte-code يقرئه ال Java Virtual Machine لغات البرمجه الأخرى تعطيك Machine code أي Assembly
ببساطة تلاحظ أنه عندما تريد أن تشغل برامج جافا يتطلب أن يكون في جهازك مشغل الجافا JVM طبعاً هذا له فوائد كثيرة بنستعرضها في الفقرة Portable
قوية (Robust)
عندما نطلق على برنامج أنه Robust فهذا معناه أنه لا يفشل عند محاولة تشغيله
لكن عندما تطلق الشيء نفسه على لغة فمعناته أن اللغة تحد من وجود الأخطاء في البرامج بأتخاذ الإجراءت اللازمة لجعل البرمجه بهذه اللغة لا يمكن أن تنتج برامج يحتوي أخطاء
نعم ما زال ممكن أن يكون هناك أخطاء في برامج الجافا و لكنها محدودة جداً فمثلاً عندما قلنا في البداية أن جافا لا تحتوي مؤاشرات فهو للحد من الأخطاء البرمجية.
محمية (Secure)
بلا شك أن جميعنا يعلم أن ال applets مبرمجة بالجافا و تحتاج الى وجود ال JVM لتشتغل في اليوم الواحد تمر بمواقع عدة بعضها يحتوي على applets فمن الممكن أن يكون هذا البرنامج برنامج خبيث ليضر بجهازك عند تصميم الجافا أخذ في الحسبان الحماية و وضع لها عدة طبقات لحماية الجهاز من البرامج الخبيثة و الأكواد الغير صحية فعلى سبيل المثال لا يمكنك أن تقراء من الذاكرة مباشرة.
ذات بنيان متعادل (Architecture Neutral) وقابلة للتغيير (Portable)
أجمل ميزة في الجافا أنها تشتغل على جميع الأجهزه لا تأخذ في الحسبان أي نظام تشغيل ذلك الجهاز يشغل كل ما عليك هو كتابة برنامج و بدون أي تغير في البرنامج بأمكانه العمل على وندوز أو لينكس أو ماكنتوش!!! كيف يتم ذلك
كل هذا بفضل ال Byte-Code و JVM فجافا لا تحول البرنامج الى لغة الالة أنما تحوله الى ما يسمى Byte-Code و لكي يشتغل البرنامج فيجب توفر JVM في الجهاز الذي بدوره يقراء ال Byte-Code و يحوله الى ما يتناسب مع نظام التشغيل. مقولة مشهوره (Write Once, Run Anywhere) أكتب مره واحده وشغل في أي مكان مختصه بالجافا.
عالية الأداء (High-Performance)
إذا جينا نقارن سرعة الجافا مع C بنلاحظ أن جافا أبطىء بعشرين مره تقريباً لأنه تحول الى Byte-Code ثم الى لغة الألة بينما C الى لغة الألة مباشرة. لكن لو قارنا ما تقدمه من أداء بالنسبه الى اللغات الأخرى فنجد أنها في الوسط فمثلاً TCL لغة Portable و جيدة لعمل البرامج التمثيلية Prototyping و لكنها بطيئة جداً ال C سريعه و لكنها تفتقد لل Portability و Reliability (سهولة التغير و الأعتمادية) بالنسبة لجافا فهي في الوسط فهي Portability و Reliability كما أنها ليست ببطء TCL أو UNIX shells
متعددة الوظائف (Multithreaded)
لو كان لديك عدة مهمات تريد عملها في نفس الوقت فأن جافا تتيح لك ذلك من خلال قدرتها على تشغيل أكثر من مهمه في نفس الوقت. كما أنها تتيح لك بكلمة synchronized التحكم بجزيئة من البرنامج بحيث يعمل في وقت محدد.
لغة دينامكية (Dynamic Language)
أي كلاس class في الجافا بأمكانك تحميله للمترجم في أي وقت.
<h1>1-إعداد بيئة العمل</h1>
يجب عليك تحميل نسخة جافا من موقع sun على الرابط التالي : http://192.18.97.120/ECom/EComTicketServlet/BEGIN0CD13D613B1FB938CCAD55D13E164532/-2147483648/1147585131/1/646394/646226/1147585131/2ts+/westCoastFSEND/jdk-1.5.0_05-oth-JPR/jdk-1.5.0_05-oth-JPR:2/jdk-1_5_0_05-windows-i586-p.exe
بعد ذلك أضغط دبل كلك على الملف ليتم التشغيل أختر مكان البرنامج و ليكن C:\jdk1.5 بعد الانتهاء من تنصيب البرنامج يجب عليك تعريف بيئة العمل عن طريق الضغط على جهاز الكمبيوتر (My Computer) بالماوس الأيمن
ثم أختيار خصائص (Properties) ثم أختيار متقدم (Advanced) بعد ذلك أختيار زر متغيرات البيئة (Environment Variables) كما في الشكل 1.1
http://telecom.alhilalclub.com/Lessons/Java/1/image001.png
<p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed"><i>الشكل 1.1 متغيرات البيئة لـ ويندوز XP</i></p>
بعد ذلك أضف المتغيرين
1. path و أعطه القيمة C:\jdk1.5\bin
2. classpath و أعطه القيمة . (نقطة) كما في الشكل 1.2
http://telecom.alhilalclub.com/Lessons/Java/1/image003.png
<p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed"><i>الشكل 1.2 إضافة متغيرات البيئة لـ ويندوزXP</i></p>
بعد الانتهاء من إعداد بيئة العمل ستجد في مجلد My Documents مجلد My Java files لتضع به ملفات الجافا الخاصة بك و البرامج التي تتطبقها عملياً في هذه الدروس.
<h1>1.1***** تشغيل البرنامج الأول</h1>
أفتح المذكرة أو أي برنامج تحرير نصوص و أطبع البرنامج التالي:
http://telecom.alhilalclub.com/Lessons/Java/1/image006.gif
أحفظ الملف بالاسم HelloWorld.java في مجلد My Java files
ملاحظة: الحروف الكبيرة و الصغيرة حساسة في جافا الملف يأخذ نفس أسم ال Class
أفتح موجه الأوامر MS DOS أطبع التالي :
CD My Java files
Javac HelloWorld.java
Java HelloWorld
ملاحظة : جملة Javacلعمل compile للملف و جملة java لتشغيل الملف
الشكل 1.3 يوضح العملية السابقة
http://telecom.alhilalclub.com/Lessons/Java/1/image007.png
<p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed"><i>الشكل 1.3 طريقة تشغيل ملف جافا</i></p>
كما هو متوقع ناتج البرنامج طباعة الجملة World Hello سنرجع بالتفصيل لشرح هذا المثال الآن كل ما عليك معرفته هو أن بيئة التشغيل سليمة و لا يوجد أي أخطاء.