دروس في لغات البرمجة

دورة البرمجة بلغة جافا (Java Programming Course) الدرس الاول


دورة البرمجة بلغة جافا (Java Programming Course)

سنبدأ اخوتي واحبتي الكرام شرح كورس البرمجة بلغة جافا للمبتدئين وصولاً للاحتراف ضمن جهودنا المستمرة في تعريب المناهج العلمية وشرح الصعب منها وتسهيلها للقارئ والطالب العربي ويأتي هذا الكورس معتمداً على ترجمة وشرح الكتاب (Java How to Program) والذي يمكن تنزيله من الرابط التالي: http://www.gulfup.com/?gdSD8l

واليكم ادناه الدرس الأول والذي يمثل مقدمة عامة عن مميزات واصدارات لغة جافا المتعددة فتابعوا معنا:

Java-Logo

المقدمة

أهلاً بكم في جافا-لغة برمجة الحاسوب الأوسع استخداماً في العالم. باستخدام هذا الكتاب، سوف تتمكن من كتابة أوامر الحاسوب التي تنجز مهام ضخمة. البرمجيات (بمعنى الايعازات التي تكتبها) تسيطر على المكونات المادية (بمعنى أخر الحواسيب). سوف نتعلم البرمجة كائنيه التوجيه (Object Oriented Programming OOP) -منهجية البرمجة الأساسية هذا اليوم. سننشأ ونعمل مع العديد من الكائنات البرمجية.

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

(SE) Java Standard Edition التي تستخدم لإنشاء طيف واسع من التطبيقات
Java Enterprise Edition (EE) تستخدم لإنشاء تطبيقات الشبكات الموزعة والتطبيقات المعتمدة على الويب
Java Micro Edition (ME) تستخدم في تطوير التطبيقات الصغير، الأجهزة ذات الذاكرة المقيدة، مثل أجهزة الهاتف الذكية بلاك بيري

 

لغة الالة ، لغة التجميع و اللغة عالية المستوى (Machine language, assembly language and HLL)

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

1-لغات الالة

2-لغات التجميع

3-لغات عالية المستوى

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

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

استخدام الحاسوب ازداد بشكل سريع مع حلول لغة التجميع (assembly language)، لكن المبرمجين لا زالوا يستخدمون العديد من الايعازات لإنجاز حتى ابسط المهام. لتسريع عملية البرمجة، لغات عالية المستوى (High Level Languages HLL) كانت قد تطورت التي فيها جملة واحدة يجب ان تكتب لإنجاز مهمة جوهرية. برامج الترجمة تدعى مترجمات (compilers) تحول برامج اللغة عالية المستوى الى لغة الالة. لغات البرمجة عالية المستوى تسمح بكتابة ايعازات التي تشابه اللغة الانكليزية المستخدمة كل يوم وتحتوي على اغلب العمليات الرياضيات المستخدمة.

ترجمة لغات البرمجة عالية المستوى الى لغة الالة يمكن ان يأخذ كمية من الوقت معتد بها. تفسير البرامج تطور مع مرور الوقت ليتمكن من تنفيذ البرامج عالية المستوى مباشرتاً (بدون التأخير في التجميع)، مع انه ابطأ من تنفيذ البرامج المترجمة. اما جافا فأنها تستخدم خليط ذكي من الاداء المتداخل للترجمة والتفسير لتنفيذ البرامج.

 

مقدمة الى تقنية الكائنات

بناء البرمجيات بسرعة، بشكل صحيح واقتصادي لايزال هدف محير في الوقت الذي يتطلب انطلاق برمجيات أكثر قوة وحداثة. الكائنات Objects، او بشكل دقيق كما سيأتي ذكرها في الفصل الثالث اصناف الكائنات تأتي من اعادة استخدام مكونات برمجية. هنالك كائنات بيانات، كائنات وقت، كائنات صوت، كائنات فديو، كائنات ذاتية الحركة، كائنات اناس وهكذا. غالباً كل اسم يمكن تمثيله ككائن برمجي بمصطلح الصفات attributes (مثلاً الاسم، اللون والحجم) وسلوكيات (مثلاً الحساب، التنقل، والاتصال). مطورو الحاسبات يستخدمون تصميم كائني المنحى وينفذون طريقة يمكن ان تجعل مجاميع تطوير البرمجيات أكثر انتاجاً من اللغات الهيكلية (structured Languages). البرامج كائنية التوجه غالباً تكون أسهل للفهم والتصحيح والتعديل.

الطرق والاصناف

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

Instantiation

هو بمثابة شخص يبني سيارة هندسياً كرسم تصميمي قبل ان تتمكن من قيادتها فعلياً، يجب ان تبني كائن لصنف قبل ان يتمكن البرنامج من انجاز المهام التي تعرفها طرق الصنف. عملية فعل هذا تدعى Instantiation. الكائن بعدها يشار له على انه نموذج من الصنف.

اعادة الاستخدام

نستطيع اعادة استخدام الصنف عدة مرات لإعادة بناء عدة كائنات. سنوفر الوقت والجهد عندما نبني اصناف جديدة وبرامج من اعادة استخدام اصناف موجودة سابقاً. كما تساعدنا في بناء انظمة أكثر موثوقية وكفاءة والسبب في كون الاصناف والمكونات الموجودة سابقاً قد تم فحصها وتنقيحها بشكل مكثف.

الرسائل وطرق الاتصال

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

الصفات

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

التغليف

الاصناف تغلف الصفات والطرق في الكائنات. صفات وطرق كائن ما تكون مرتبطة به بشكل اساسي. الكائنات ربما تتصل مع بعضها البعض لكنها بشكل طبيعي غير مسموح لها بان تعرف كم هو تطبيق (تنفيذ) الكائنات الأخرى؟ تفاصيل التطبيق (التنفيذ) تكون مخفية مع الكائن نفسه.

الوراثة

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

 

 

 

لماذا لغة البرمجة جافا

تعتبر ثورة المعالجات الدقيقة الاكثر اهمية في المساهمة في تطوير الحواسيب الشخصية. الهدف الاساسي من جافا هو القدرة على كتابة برامج التي ستنفذ على مختلف انظمة الحواسيب واجهزة المسيطر عليها بالحواسيب. وهذا يدعى في بعض الاحيان (يكتب لمرة واحدة ليعمل على أي مكان wrote once and work everywhere).

مكتبات اصناف جافا

 تمكن من انشاء الاصناف والطريق المطلوبة لتشكيل برامج الجافا. ان اغلب مبرمجي الجافا يأخذون ميزة الوصول لمجاميع الاصناف والطرق الموجودة في مكتبات اصناف جافا والتي تعرف بواجهة برمجة تطبيقات الجافا Java APIs (Application Programming Interfaces)

الاداء

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

قابلية (الحمل) التنقل

بالإضافة لما تقدم فانه من السهل حمل البرامج (بمعنى اخر البرامج يمكنها ان تعمل على العديد من مختلف انواع الحواسيب) بمرونة كبيرة. سننفذ البرامج هنا بالاعتماد على Java SE Development Kit (JDK) التي يمكن تحميلها من الرابط التالي مع مستنداتها

http://www.oracle.com/technetwork/java/javase/downloads/index.html

كما يمكنك زيارة الرابط التالي لمزيد من إيعازات التثبيت.

http://www.oracle.com/technetwork/topics/newtojava/overview/index.html

 

لملاحظاتكم ومقترحاتكم

uomprogrammer@gmail.com

https://www.facebook.com/CVDProgrammer

www.ali.alreefi.webs.com

 

6 thoughts on “دورة البرمجة بلغة جافا (Java Programming Course) الدرس الاول

  1. السلام عليكم ورحمه الله وبركاته
    من فضلك يا بشمهندس انا كنت عايزه شرح مفصل للغه الجافا

    أعجبني

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s