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


بيجو 77 هو احلى منتدى للهوايات والذكريات التى عشناها
 
البوابةالرئيسيةأحدث الصورالتسجيلدخولصحافة pejoo77

 

 الجافا ......الدرس الاول

اذهب الى الأسفل 
كاتب الموضوعرسالة
karem
Admin
karem


عدد الرسائل : 629
رقم العضوية : 1
تاريخ التسجيل : 23/11/2007

بطاقة الشخصية
الاسم/:
تاريخ الميلاد:
الدولة: جمهورية مصر العربية

الجافا ......الدرس الاول Empty
30042008
مُساهمةالجافا ......الدرس الاول

الكمبيوتر ليس مجرد آلة ولكنه يميل أكثر إلى أن يكون أداة تحاكي العقل. والكمبيوتر هو أداة للتعبير مثل الكتابة والرسم وفن النحت وصناعة الأفلام، وال 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 ********s مثل السي 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
من موقع عمرو خالد
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://pejoo77.yoo7.com
مُشاطرة هذه المقالة على: reddit

الجافا ......الدرس الاول :: تعاليق

لا يوجد حالياً أي تعليق
 

الجافا ......الدرس الاول

الرجوع الى أعلى الصفحة 

صفحة 1 من اصل 1

 مواضيع مماثلة

-
» الجافا ...الدرس الثانى
» لمصفوفات Arrays فى لغة الجافا
» القواعد الاساسية للغة الجافا
» لقد تعلمو الدرس جيدا
» المتهم الاول ينفى التهم الموجهة الية

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
بيجو 77 :: الفئة الأولى :: عالم الكومبيوتر والانترنت-
انتقل الى: