المسارات
/
Java
Java
/
التمارين
/
Tim من التسويق
Tim من التسويق

Tim من التسويق

تمرين تعلّمي

مقدمة

إمكانية أن تكون القيمة null

في Java، تُستخدم القيمة الحرفية null للدلالة على غياب القيمة.

أنواع البيانات الأولية في Java لها جميعًا قيمة افتراضية، ولذلك لا يمكن أن تكون null أبدًا. وبحسب الاصطلاح، تبدأ بحرف صغير، مثل int.

أنواع المراجع تحمل عنوان ذاكرة الكائن، ويمكن أن تكون قيمتها null. وهي تبدأ عمومًا بحرف كبير، مثل String.

محاولة إسناد القيمة null إلى متغير أولي ستؤدي إلى خطأ في وقت الترجمة، لأن المتغير يحمل دائمًا قيمة أولية من النوع المُسنَد إليه.

//Throws compile time error stating the required type is int, but null was provided
int number = null;

إسناد القيمة null إلى متغير مرجعي لن يؤدي إلى خطأ في وقت الترجمة، لأن المتغيرات المرجعية يمكن أن تكون null.

//No error will occur as the String variable str is nullable
String str = null;

التعليمات

في هذا التمرين ستكتب الكود لطباعة شارات الأسماء لعاملي المصنع.

1. اطبع شارة لموظف

لدى الموظفين معرّف واسم واسم قسم. تُنسّق نصوص شارات الموظفين على النحو التالي: "[id] - name - DEPARTMENT". نفّذ طريقة Badge.print() لتُرجع نص شارة الموظف:

Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"

لاحظ أن القسم يجب أن يكون بأحرف كبيرة في نص الشارة.

2. اطبع شارة لموظف جديد

بسبب خلل في نظام الحاسوب، في بعض الأحيان لا يكون لدى الموظفين الجدد معرّف بعد عند بدء العمل في المصنع. ولأن الشارات مطلوبة، سيحصلون على شارة مؤقتة بدون بادئة المعرّف. عدّل طريقة Badge.print() لدعم الموظفين الجدد الذين ليس لديهم معرّف بعد:

Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"

3. اطبع شارة للمالك

حتى مالك المصنع يجب أن يرتدي شارة في جميع الأوقات. ومع ذلك، ليس للمالك قسم. في هذه الحالة، يجب أن يطبع نص الشارة "OWNER" بدلًا من اسم القسم. عدّل طريقة Badge.print() لطباعة نص شارة للمالك:

Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"

لاحظ أنه من الممكن أن يكون المالك أيضًا موظفًا جديدًا:

Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Java Exercism

مستعد لبدء Tim من التسويق؟

سجّل في Exercism لتتعلّم وتتقن Java عبر 26 مفهومًا158 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.