القائمة الرئيسية

الصفحات

- أكوا ويب


أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الخامس - الـ Constructors)

Posted: 10 May 2018 02:41 PM PDT

مرحبا بك، قمنا في مقالاتنا المنصرمة بتوفير كم من المعلومات في دورتنا المقالية حول مفاهيم الـ OOP و كيفية إستنادها، شرحنا لك في الدروس الأولى مفاهيم الـ OOP و كيف يختلف عن البرمجة المعتادة، و لما الـ OOP ضروري التعلم أيضا، ثم إنتقلنا طيلة 3 دروس أخرى نشرح لك فيها مفهوم كل من الكلاس، أساس البرمجة كائنية التوجه، و إنتقلنا معك الى مفهوم الـ Object الذي نقوم بصناعته بالإعتماد على الكلاس و يأخذ معطيات و مدخلات الكلاس البرمجي، و في آخر درس تحققنا من 3 مفاهيم و هي Private , Protected, Public او ثلاثية الـ P، المسماة عالميا بالـ Access Modifiers، و تطرقنا الى كيفية إستخدامها و اين يتوجب عليك إستخدامها . 
في الجزء الخامس، سنتعرف على مفهوم الـ Constructors، واحد من اهم المفاهيم المتعلقة بمجال الـ OOP، و ستستخدمه كثيرا اثناء تكويد و صناعة برمجيات تعتمد على البرمجة كائنية التوجه في حياتك المهنية او مشاريعك البرمجية، فهي من الأساسيات المشكلة للكلاس، فدعونا نتعرف عليها أكثر . 

للإطلاع على الدروس السابقة : 

  1. أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الأول - تمهيد )
  2. أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثاني - Classes)
  3. أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)
  4. أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الرابع - الـ Access Modifiers)

أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الخامس - الـ Constructors)

- ما هو الـ Constructors : 

يمكننا تعريف الـ Constructor على أنه حدث يتم تشغيله مباشرة حين يتم إستخدام الكلاس من طرف الـ Object، فمن أجل بدئ إستخدام الكلاس في الأخير، سيتوجب عليك إنشاء Object من الكلاس كما اشرنا في الدروس السابقة، لكن ماذا لو أردنا إنشاء حدث معين أثناء إنشاء Object ؟ ماذا لو أردنا إحتساب مثلا عدد الـ Objects التي تم صناعتها على سبيل المثال ؟ 
الـ Constructor هو دالة يتم تضمينها داخل الكلاس، تحمل هذه الدالة نفس إسم الكلاس الموجودة بداخله، تلقائيا و بشكل إفتراضي، يتم تحديد Constructor من طرف الكلاس حتى و إن لم تقم بكتابته، و يُسمى بالـ Default Constructor، و يعتبر الـ Constructor من أساسيات الـ OOP و تجسيداتها، و يساعدنا بالتعامل بشكل أكثر إحترافية مع الـ Object حين يتم إنشائها . 


أنواع الـ Constructors : 



كما سبق الذكر، فإنه يوجد أنواع من الـ Constructors لكل نوع وظيفة و حدث معين حين يشتغل، من أهم هذه الانواع يوجد : 
* الـ Default Constructor : وهو الـ Constructor الرئيسي او الأساسي او الإفتراضي، يمكنك إما تحديده، او سيتم تحديده إفتراضيا دون كتابته، لكن يفضل ان تحدده بنفسك فإن تطلب منك تعديل بعض الخواص فيه سيكون أسهل، في الغالب يكون هذا الـ Constructor فارغا في حالة لم تريد إنشاء اي تعديل او تحديث حين يتم إنشاء الـ Object . 
* الـ Parametrized Constructor : و هو نوع من الـ Constructor يتضمن مجموعة من المدخلات على شكل Parameters، في الغالب تكون هذه المدخلات هي الـ Attributes الخاصة بالكلاس ( كما شرحنا سابقا في درس ما هو الكلاس ) . 
يوجد أنواع أخرى من الـ Constructors مثل الـ Static Constructor و Copy Constructor، لكن في الوقت الراهن سنكتفي فقط بهذين النوعين لأنهما الأكثر إستخداما و سنحتاجهما في الدروس القادمة .


- كيفية إنشاء Constructor و أساسيات إنشائه : 



قبل إنشاء الـ Constructor، إليك أولا هذه النقاط الأساسية التي يجب عليك معرفتها : 
يتم إنشاء الـ Constructor في الكلاس الخاصة بنا ( في هذه الحالة سنستعين بكلاس Computer التي إشتغلنا عليها سابقا )، و يجب أن يكون إسم الـ Constructor مشابه تماما لإسم الكلاس سواء في الـ Default او الـ Parametrized، يمكن إنشاء الإثنين معا في نفس الكلاس، سيتم التعرف على كل واحد منهما أثناء الإستخدام عن طريق عملية الـ Overloading ( سنعود لها لاحقا في الدروس القادمة )، الـ Constructor  شبيه بالـ Methode لكن لا يتم تحديد نوعه قبلا ( اي String او Void ) . 
هذا مثال بسيط لإدراج الـ Constructor في الكلاس الخاصة بنا : 





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

- شرح الـ Default Constructor : 


و هو إفتراضي كما أشرنا سابقا، يشتغل هذا الـ Constructor مباشرة بعد إنشاء الـ Object التابع للكلاس، و ذلك حين نقوم بعمل Computer Acer = new Computer فبذلك سيشتغل الـ Constructor الإفتراضي تلقائيا للتحقق من الأمر بشكل مقرب، دعونا نضيف أمر طباعة في الـ Constructor ثم نقوم بصناعة Object من الكلاس ثم نشغل البرنامج و نرى النتيجة : 





فور إنشاء Object كما في الدروس السابقة و تشغيل البرنامج، مباشرة سيُظهر لنا رسالة انه تم تشغيل هذا الـ Constructor و ذلك لأنه يُفعل تلقائيا في كل مرة نقوم بصناعة Object من الكلاس . 

- شرح الـ Paramerized Constructor : 

على عكس الـ Default Const، فإن الـ Parametrized يتطلب إضافة مجموعة من الـ Parameters في الـ Constructor، يتم التفرقة بين كل منهما عن طريق الـ Overloading، حين نقوم بصناعة Object دون تمرير أي قيم فتلقائيا يأخذ الـ Default Constructor، في حالة إدراج قيم معينة، فيتم تهيئة الـ Parametrized Constructor، يتم تمرير القيم في أثناء صناعة الـ Object بالشكل التالي : 



ترى  جليا أنني ادخلت القيم مباشرة في الـ Object و هنا نتحدث عن الـ Parametrized Object، في حالة قمت بنفس العملية دون تحديد الـ Parametrized Constructor في الكلاس، فسيظهر لك خطأ في الكود البرمجي، لأن هذه الأخيرة لا يتم وضعها إفتراضيا كما الـ Constructor الإفتراضية . 
لنتحدث قليلا الآن عن وسط الـ Parametried Constructor و الكود التالي : 


تستطيع ان ترى جليا ان الـ Constructor تتطلب مجموعة  من المدخلات، و هي التي أدرجناها في الـ Object في الكود سابقه، الآن إن ولجنا الى وسط الـ Constructor، فسنجد انه بدأ بمعالجة هذه المدخلات بطريقة بسيط، قمنا بتحديد ان قيم المدخلات التي تمت عبر الـ Object ستأخذها قيم الكلاس من أجل تأكيد صناعة الـ Object، من أجل فعل ذلك، علينا ان نربط كل قيمة مُدخلة من خلال الـ Constructor، بالقيمة المناسبة لها في الكلاس، لكن إن لاحظت جيدا، فإسم المدخلات يحمل نفس إسم عناصر الكلاس، مثل id و id و غيرها، فكيف يمكن تحديد الفرق بينها ؟ 
لفعل ذلك، سنستعين بخاصية this، تسمح لنا this بتحديد القيمة التابعة للكلاس، بحيث اخبره ان يأخذ متغير هذا الكلاس اي this.id، ثم يأخذ القيمة القادمة من خلال الـ Parameter و هي id . 
يمكنك ان تجعل أسماء المتغيرات مختلفة إن اردت، لكن سيتطلب منك دائما إستخدام this حين تريد إستخدام احد المتغيرات او Attributes داخل الكلاس وسط Method في الكلاس أيضا، غير هذا قد يُظهر لك خطأ في الكود البرمجي . 

إذن إلى هنا ننهي معك درسنا الخاص بالـ Constructor، أتمنى ان يكون هذا الدرس مفهوم و جيد، في حالة توفر أي سؤال، نحن نفتح أبوابنا في التعليقات لنجيبك دائما .  

مجموعة خدمات قوية لمشاركة و رفع الملفات مع أصدقائك بطرق غير تقليدية

Posted: 10 May 2018 05:56 AM PDT

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


مجموعة خدمات قوية لمشاركة الملفات مع أصدقائك بطرق غير تقليدية

إن أول الخيارات التي ستحاول إستخدامها من أجل القيام بعملية مشاركة الملفات هي الخدمات السحابية، مثل Google Drive و Mega و Mediafire و DropBox و pCloud الرائع أيضا و اللائحة تطول، و هي خدمات إحترافية حقا و إن كنت تريد مشاركة ملفات لا بأس بها من ناحية الحجم فنحن ننصحك بها تماما 👍، لكن مشكلة الرفع لازالت قائمة، فأنت تستخدم في الغالب نوع إتصال Async، اي ان قيمة الرفع لا تساوي قيمة التحميل في صبيب الإنترنت لديك، لربما تقوم بالتحميل بسرعة 4 ميغا في الثانية، لكن الرفع لن يتجاوز إطلاقا 0.2 ميغا في الثانية ( Async هي بادئة ADSL مختصرة يمكنك مراجعة مقالنا كيف نتصل بالإنترنت ؟ لا تستغرب ربما انت حقا لا تعرف الإجابة   للمزيد من المعلومات ) . 
لذلك، سنحاول صديقي ان نقترح عليك الخدمات التالية و الإستفادة منها لحل مشكلة الرفع و التحميل و مشاركة الملفات الكبيرة و الضخمة مع أي شخص في هذا العالم بطرق مختلفة و متعددة، و سنقترح عليك أيضا خدمات اخرى للرفع غير تقليدية ستعجبك . 


- File Pizza : 

موقع مفيد و إحترافي، يسمح لك الموقع بإختيار الملفات التي تريد مشاركتها مع الآخرين، سواء كانت ملفات كبيرة او صغيرة، يقوم الموقع بمشاركة هذه الملفات عن طريق بروتوكول P2P ، بحيث يوفر عليك عناء الرفع و مشاكله، و يسمح فقط لقرينك الذي ستوفر له الملف لاحقا لتحميله، بتحميل الملف مباشرة من حاسوبك، يمكنك النظر إليها بطريقة مختلفة، تخيل انك تنسخ ملفا من حاسوبك الشخصي الى فلاشة USB، نفس الأمر سيان هنا، صديقك الذي تمده بالملف يقوم بنسخه من حاسوبك الى حاسوبه عن طريق الإنترنت بالإستعانة ببروتوكول P2P، و يضمن لك موقع File Pizza عدم إنقطاع ذلك النسخ و سيرورته بشكل جيد أيضا . 
رابط الموقع .

- PlusTransfer :


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


- DocDroid : 


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

- File.io : 

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

- Senduit : 


لربما لا يختلف كثيرا من حيث المبدأ عن مواقع الرفع كلها، و لا يختلف أكثر عن موقع File.io الذي يسمح لك بحذف الملفات فور تحميلها، إلا انه في Senduit يمكنك تحديد المدة الزمنية للملف، بحيث يمكنك رفع ملف كيفما كان، ثم تحديد مُهلة التحميل مثلا 60 دقيقة، ثم الحصول على رابط للتحميل، ذلك الرابط سيبقى صالحا لتحميل الملف لمدة 60 دقيقة فقط، بعدها سيتم حذف الملف من سيرفرات الموقع و لن يشتغل معك ايضا رابط التحميل . 
رابط الموقع 

- مشاركة الملفات عن طريق الـ Torrent : 

و سنختم معك هذا المقال البسيط بتوفير الطريقة الأمثل لمشاركة الملفات مع أصدقائك بشكل مباشر، يكفي تحميل احد خدمات التورنت مثل BitTorrent او uTorrent، ثم النقر في الاعلى على File ثم Create New Torrent، ثم تختار الملف من جهازك و تكمل إدخال المعلومات و تنقر في الأخير على Create، سيتجسد لك ملف Torrent خاص بالملف الذي إخترته، أرسل لصديقك الملف و سيقوم بأخذ و رفع الملف مباشرة من حاسوبك عن طريق الـ Torrent أيضا . 



هل اعجبك الموضوع :

تعليقات