لننظر إلى الشكل:
نلاحظ
عرض السطرين 5 و 6 فيهما استخراج عضوين هما line1 و line2 من فئة الخط
المستقيم. ثم قمنا بعد ذلك بحجز الذاكرة لهما لكونها من فئة قمنا بتعريفها
(Aggregate Data Type) كما شرحنا في
الدرس الثالث عشر. هنا الطريق تمام و مفتوح
لننظر للشكل التالي:
في
الشكل الأعلى نجد الأسطر من 8 و حتى السطر 13. في السطر الثامن نجد
تعليقاً يخبرنا أننا سنقوم الآن بإعداد النقاط في السطرين اللذين قمنا
بتعريفهما للاستخدام. لأننا لو تذكر في تعريفنا للخط المستقيم لم نقم
باستخدام new لحجز المساحة لكلتا النقطتين. و هكذا وجب علينا في هذا
البرنامج أن نقوم بذلك.
نقطة توقف.. |
إن هذه الخطو ضرورية جداً جداً جداً جداً جداً. ستسأل لماذا.. تذكّر معي أننا قمنا بتعريف الخط المستقيم في البرنامج بأن فيه عضوين من فئة النقطة Point. و لم نقم بعد بحجز أي مساحة لهذين العضوين. و هكذا لابد أن نقوم بحجز المساحة للنقطتين الخاصتين بالخط الأول و كذلك النقطيتن الخاصتين بالخط الثاني. و إذا لم نقم بهذا العمل. فنحن في الواقع لن نتمكّن من تشغيل البرنامج لأن النقاط ليست جاهزة للاستخدام و لن نتمكّن في الواقع من استخدام x و y لأي نقطة. لأنه بكل بساطة النقاط ليست موجودة و لم يتم حجز الذاكرة المناسبة لها بعد. راجع الدرس الثالث عشر لمزيد من المعلومات حول هذه النقطة. هل تعتقد أن هذه مشكلة يجب أن نجد لها حلاً. تفكير رائع :-) وهذا ما سنفعله في الدرس القادم من هذا الموضوع. |
لننظر للشكل التالي:
هنا
نجد الأسطر من 15 إلى 19. و في السطر 15 نجد تعليقاً يخبرنا أننا سنقوم
بإعطاء قيماً للخط المستقيم line1 . و هذا يعني أننا سنحدد النقاط التي
يصل بينهما. و بتفسير أكثر سنقوم بتحديد الاحداثيات السينية و الصادية
لكلتا النقطتين. نلاحظ أننا استخدمنا الـ dot notation هنا و هذا يعني
انني سأقوم باستخدام صفة (في حالتنا) خاصة بالعضو الذي ينتمي للفئة Line.
لننظر لدفتر الرسم البياني و نحاول رسم هذا الخط الذي يربط بين النقطتين
(10,10) و (20،20).
هل الخط المستقيم الأول واضح الآن؟ أرجو ذلك :-)
والآن لننظر للشكل التالي:
كما
في القسم السابق، و لكن هذه المرة في الأسطر من 21 إلى 25 سنقوم بتحديد
الاحداثيات لنقطتي الخط المستقيم الثاني. لننظر للشكل التالي الذي يمثل
الخط المستقيم على الرسم البياني:
أرجو أن يكون هذا الجزء واضحاً تماماً بالنسبة لكم.
والآن لنتابع الجزء الأخير:
الأسطر من 27 إلى 37 تقوم بطباعة السطر بشكل متب كما في أي سطر طباعة آخر. تطبعه على الشاشة.
كل ما في الأمر أننا قمنا بترتيب المخرجات.
نقطة توقف.. |
استخدام اشارة (+) في داخل جملة الطباعة لا تعني أننا سنقوم بالجمع. إلا في حالو واحدة وهي أنه وُجد على طرفي هذه الإشارة داخل أمر الطباعة عددين قابلين للجمع. و حتى هذا ليس الحال دائماً. لأنه يعتمد في بعض الأحيان على ترتيب المتغيرات و موقعها في جملة الطباعة نفسها. علامة الجمع بين المتغيرات من نوع String و هي التي تمثلها العبارات المحصورة بين علامتي التنصيص " و "، يعني أنه سيتم جمع هذه العبارات. و هذا ما تفعله جملة أو أمر الطباعة System.out.println. |
إنّك
إذا قمت بكتابة جميع البرامج بشكل صحيح، فإنّك بعد عمل الترجمة Compile
للملفات الثلاثة، و تشغيل الملف الأخير Painter، فإنه سيظهر لك هذا
الناتج:
هذا
ما لدي في هذا الجزء. و لكن دعوني أسأل، هل ما فعلناه كان الأفضل؟ أم أن
هناك طريقة أفضل لعمل نفس الناتج. الجواب ستجدونه في الدرس القادم إن شاء
الله
ملاحظة برنامجنا حتى الآن لا يقوم بالرسم.. و لكنه سيفعل ان شاء الله :-) كل ما هنالك أننا نبنيه جزءاً جزءاً. فالصبر يا إخوان.
وفوق كل ذي علم عليم