Arabic subtitles

12-17 Define and Call a Method - Solution

Get Embed Code
13 Languages

Showing Revision 2 created 12/28/2015 by Fran Ontanaya.

  1. دعونا نقوم بالخطوة الأولى معاً
    إضافة طريقة جديدة لـMainActivity
  2. يمكنك اختيار أي مكان في الملف
    لإضافة طريقتك
  3. طالما أنها خارج أقواس
    طريقة مغايرة
  4. سأقوم بإضافتها في أسفل
    الطريقة التي حدَدناها
  5. التي كانت calculatePrice
  6. سأكتب private متحكم الوصول
    وذلك لأن الشيء الوحيد
  7. الذي يحتاج للدخول إلى هذه الطريقة
    موجود ضمن العملية الرئيسية
  8. ثم سأكتب سلسلة محرفية
    لنمط العودة
  9. لأن طريقة createOrderSummary
    يجب أن تعيد السلسلة
  10. وبعد ذلك اسم الطريقة هي
    createOrderSummary
  11. ومن ثم ينبغي أن نأخذ مدخل price من
    النمط int، وهو رقم
  12. حسناً
    لقد أنجزنا إشارة الطريقة، ولكن
  13. الآن يجب أن ننفذ الطريقة
    بحيث تُرجِع هذه الرسالة
  14. تبدأ الرسالة بـ name
    وquantity و"total" وثم "thank you"
  15. لذلك سأمضي قدماً
    وأنسخ هذا ومن ثم
  16. سألصقه في طريقة
    createOrderSummary
  17. الآن، يمكننا أن نبدأ بالكود الأساسي
  18. والفرق الذي لدي الآن
  19. يجب أن تبدأ order summary بـ"name"
    وليس "total price"
  20. لذا سأقوم بنقل هذا إلى السطر
    التالي وسأحفظه لوقتٍ لاحق
  21. سأقوم بتهيئة متحول
    رسالة السعر إلى "Name"
  22. ثم "Kaptain Kunal"
  23. بعد ذلك، في السطر التالي سأقوم
    بتحديث لرسالة السعر
  24. سأقوم بضم الرسالة الموجودة، لذلك
  25. سأكتب " price message" + ومن ثم
    النص الجديد
  26. وأريد أن أضيف "quantity" ثم سأضيف
    متحول quantity
  27. طالما أن quantity متحول عام
  28. ينبغي أن نكون قادرين على
    الوصول إليه في هذه الطريقة
  29. حسناً، الآن لدينا name وquantity
  30. في السطر التالي سأقوم
    بتحديث priceMessage مجدداً
  31. سأكتب نصاً إضافياً
  32. في الواقع يفترض بهذا النص
    أن يكون "Total Price"
  33. أستطيع أن استخدم ما كان لدينا سابقاً
  34. حسناً، في السطر الأخير قمنا بتحديث
    priceMessage مجدداً
  35. نأخذ القيمة الموجودة من هذه السلسلة
    المحرفية ومن ثم نضيف "!Thank you" إليها
  36. هذا يبدو جيداً جداً، ولكن
    لا يزال هناك خطأ هنا
  37. إنها تقول: "missing return statement"
  38. طالما أنه من المفترض أن نعيد
    ملخص السلسلة المحرفية
  39. أحتاج إلى إضافة سطر آخر من الكود
    الذي يقول return
  40. ومن ثم قيمة الإعادة
  41. في هذه الحالة قيمة الإعادة
    هي priceMessage
  42. و سأضيف فاصلة منقوطة في النهاية أيضاً
  43. حسناً تم حذف الخطأ
  44. يبدو أن لدينا كود جيد
    لذلك سأقوم بتشغيله واختباره
  45. حسناً، إذا قمت بتغيير
    quantity إلى ثلاثة
  46. لقد ضغطت على زر"Order"
    إنه لا يعمل
  47. دعونا نرى ما هو الخطأ
  48. عند النظر إلى الكود بتدقيق أكثر
    لقد رأيت ما هي المشكلة
  49. هناك تحذير هنا أن يقول أن
    الطريقة الخاصة createOrderSummary
  50. لم تستخدم أبدا
  51. لقد نسيت أن أستدعيها
  52. دعونا نعود إلى الشريحة الموجزة
  53. حسناً، لقد قمنا بالمهمة الأولى
    بنجاح ولكن يجب الآن
  54. أن استدعي طريقة createOrderSummary
    من طريقة submitOrder
  55. بالرجوع إلى استوديو أندرويد
    أحتاج لإصلاح طريقة submitOrder
  56. لقد قمت بحساب السعر
    وهو صحيح
  57. ولكن الآن يجب أن أكتبه في طريقة
    createOrderSummary
  58. لذلك سأقوم بذلك هنا
    createOrderSummary مع
  59. متحول price
  60. قيمة الإعادة في هذه الطريقة
    سيتم تخزينها في
  61. المتحول priceMessage
  62. لست بحاجة إلى هذا سطر من
    الكود بعد الآن لأن
  63. "Thank you" موجودة سابقاً
    في النص في الأسفل هنا
  64. لذا أستطيع أن أحذف هذا
  65. ثم لتحديث الشاشة كل ما يجب أن
    أقوم به هو أستدعاء displayMessage
  66. مع متحول priceMessage مثل ما سبق
  67. والآن دعونا نحاول تشغيل
    التطبيق مرة أخرى
  68. إذا قمت بتغيير quantity إلى ثلاثة
  69. لقد ضغطت على زر "Order"
    لكنه لا يزال لا يعمل
  70. معظم النص في سطر واحد في حين
    يجب أن يكون على سطور متعددة
  71. دعونا نعود ونصلح الكود
  72. بالنظر إلى هذا الكود أدرك أنني
    نسيت حرف السطر الجديد
  73. لقد أضفته بشكل صحيح "Thank you"
    ولكن ليس للبقية
  74. لذلك سأقوم بإضافتها إلى
    السطور الأخرى الآن
  75. حسناً، دعونا نحاول أن نشغله مرة أخرى
  76. وها هو يعمل
  77. رائع
  78. الآن Kaptain Kunal يمكنه
    أن يتناول ثلاثة أكواب من القهوة
  79. أريد أن أريك بعض التحسينات الأخرى
    التي يمكنك القيام بها للكود
  80. لاحظ أنه كان بإمكانك استدعاء
    الطريقة calculatePrice ضمن
  81. طريقة createOrderSummary
    بدلاً من كتابتها كوسيط دخل
  82. لذلك يمكنك أن تنجز calculatePrice هنا
  83. ذلك سيعمل أيضاً
  84. ولكن أردت أن أظهر لكم أنه باستطاعتكم
    أخذ الناتج من طريقة ما
  85. وكتابتها كمدخل إلى طريقة أخرى
  86. لذا فإننا سنتركه كما كان لدينا من قبل
  87. ضمن طريقة createOrderSummary
  88. الشيء الآخر الذي كان من الممكن
    أن أقوم به هو استخدام المعامل =+
  89. هذا اختصار
  90. وهو يعني نفس الشيء كما
    "كل هذا" priceMessage += priceMessage
  91. حتى إذا قمت بتغيير كل هذا ليكون =+
    سيكون كما كان لي سابقاً
  92. هذا يتطلب فقط كتابة أقل بحيث
    يكون الكود أكثر إيجازا
  93. في طريقة calculatePrice
  94. الشيء الآخر الذي كان من الممكن
    أن أقوم به هو مجرد إرجاع القيمة
  95. على الفور بدلاً من تخزينها في
    متحول محلي ثم إسترجاعه
  96. وهذا يؤدي أيضاً إلى كود أكثر إيجازاً
  97. وفي الأعلى هنا في طريقة submitOrder
    بدلاً من createOrderSummary
  98. وتخزينها في متحول ومن ثم استخدامها لاحقاً
    كان يمكنني أن
  99. فقط أن أستدعي createOrderSummary
    ومن ثم استدعاء displayMessage على ذلك
  100. وهذا يؤدي إلى نفس النتيجة
  101. قيمة الإعادة لطريقة createOrderSummary
    هي سلسلة محرفية
  102. والتي سيتم إدخالها كوسيط دخل
    في طريقة displayMessage
  103. يمكنك أن تتركها مثل هذا إذا كنت تريد
    اذا كان أسهل للقراءة
  104. على أي حال كل هذه النصائح
    والحيل تؤدي إلى نفس المنطق
  105. وقبل أن أنسى، تذكر أن
    تضيف تعليق Javadoc
  106. في الجزء العلوي من هذه
    الطريقة لشرح ما يُفترض أن يتم
  107. من الناحية الفنية لا تحتاج إلى
    تعليق Javadoc للطريقة الخاصة
  108. لكن إنها مجرد ممارسة
    جيدة لكتابة شرح لطريقة
  109. أن الآخرين الذين يقرأون الكود الخاص
    بك سيفهمون أيضاً
  110. ما تحاول القيام به
  111. شرح هذه الطريقة هو أنه
    ينشئ ملخصاً للتعليمات
  112. وسيط الإدخال مثل price لهذه الأمر
    وذلك بإرجاع ملخص النص