- أكوا ويب |
أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الخامس - الـ Constructors) Posted: 10 May 2018 02:41 PM PDT مرحبا بك، قمنا في مقالاتنا المنصرمة بتوفير كم من المعلومات في دورتنا المقالية حول مفاهيم الـ OOP و كيفية إستنادها، شرحنا لك في الدروس الأولى مفاهيم الـ OOP و كيف يختلف عن البرمجة المعتادة، و لما الـ OOP ضروري التعلم أيضا، ثم إنتقلنا طيلة 3 دروس أخرى نشرح لك فيها مفهوم كل من الكلاس، أساس البرمجة كائنية التوجه، و إنتقلنا معك الى مفهوم الـ Object الذي نقوم بصناعته بالإعتماد على الكلاس و يأخذ معطيات و مدخلات الكلاس البرمجي، و في آخر درس تحققنا من 3 مفاهيم و هي Private , Protected, Public او ثلاثية الـ P، المسماة عالميا بالـ Access Modifiers، و تطرقنا الى كيفية إستخدامها و اين يتوجب عليك إستخدامها . في الجزء الخامس، سنتعرف على مفهوم الـ Constructors، واحد من اهم المفاهيم المتعلقة بمجال الـ OOP، و ستستخدمه كثيرا اثناء تكويد و صناعة برمجيات تعتمد على البرمجة كائنية التوجه في حياتك المهنية او مشاريعك البرمجية، فهي من الأساسيات المشكلة للكلاس، فدعونا نتعرف عليها أكثر . للإطلاع على الدروس السابقة :
- ما هو الـ 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 :ترى جليا أنني ادخلت القيم مباشرة في الـ 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 :رابط الموقع . - PlusTransfer :الموقع جميل مبدئيا و مفيد إن اردت إرسال ملفات ضخمة إلى صديق معين بإستخدام طرف ثالث و بسرعة دون الإستعانة بالخدمات البريدية التي قد تكون عائقا في رفع ملف ضخم مبدئيا . رابط الموقع - DocDroid :رابط الموقع . - File.io :تستطيع أيضا من خلال موقع File.io رفع الملفات، لكن بطريقة مغايرة قليلا، تستطيع من خلال الموقع رفع ملفات يصل حجمها الى 5 جيغابايت أيضا، يمكنك أيضا رفع العديد من الملفات دفعة واحدة لا مشكلة في ذلك، بعد الإنتهاء من الرفع سيقدم لك الموقع رابط لتحميل الملف الذي قمت برفعه، و هنا تأتي الإثارة، بحيث انه يسمح بتحميل واحد فقط للملف، أي فور تحميله سيتم حذف الملف من سيرفرات الموقع و لن تشتغل روابط التحميل مجددا .رابط الموقع - Senduit :رابط الموقع - مشاركة الملفات عن طريق الـ Torrent :و سنختم معك هذا المقال البسيط بتوفير الطريقة الأمثل لمشاركة الملفات مع أصدقائك بشكل مباشر، يكفي تحميل احد خدمات التورنت مثل BitTorrent او uTorrent، ثم النقر في الاعلى على File ثم Create New Torrent، ثم تختار الملف من جهازك و تكمل إدخال المعلومات و تنقر في الأخير على Create، سيتجسد لك ملف Torrent خاص بالملف الذي إخترته، أرسل لصديقك الملف و سيقوم بأخذ و رفع الملف مباشرة من حاسوبك عن طريق الـ Torrent أيضا . |
You are subscribed to email updates from أكوا ويب - موقع شامل لرواد الويب العربي. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
تعليقات
إرسال تعليق