Java لغة ذات أنواع ثابتة، أي أن نوع المتغير معروف في وقت التصريف. ويُسمّى إسناد قيمة إلى اسم تعريف المتغير. ويُعرَّف المتغير بتحديد نوعه صراحةً.
int explicitVar = 10;
ويتم تحديث قيمة المتغير عبر العامل =.
هنا لا يمثل = المساواة الرياضية.
إنه يكتفي بإسناد قيمة إلى متغير.
وبعد تعريفه، لا يمكن أن يتغير نوع المتغير أبدًا.
int count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning a different type
// count = false;
Java لغة كائنية التوجه وتتطلب تعريف جميع الدوال داخل صنف.
وتُستخدم الكلمة المفتاحية class لتعريف صنف.
class Calculator {
// ...
}
وتُسمّى الدالة داخل الصنف طريقة.
ويمكن أن تحتوي كل طريقة على أي عدد من المعاملات، وقد لا تحتوي على أي منها.
ويجب تحديد نوع كل المعاملات صراحةً، فلا استنتاج للأنواع في المعاملات.
وبالمثل، يجب أيضًا تحديد نوع الإرجاع صراحةً.
وتُرجع الطرق القيم باستخدام الكلمة المفتاحية return.
وللسماح للأصناف الأخرى باستدعاء طريقة ما، يجب إضافة مُعدِّل الوصول public.
class Calculator {
public int add(int x, int y) {
return x + y;
}
}
ويتم استدعاء الطريقة بتحديد صنفها واسمها وتمرير الوسائط لكل معامل من معاملاتها.
int sum = new Calculator().add(1, 2); // here the "add" method has been called to perform the task of addition
يُعرَّف النطاق في Java بين المحرفين { و}.
تدعم Java نوعين من التعليقات.
تُسبق التعليقات أحادية السطر بـ //، وتُدرج التعليقات متعددة الأسطر بين /* و*/.
في هذا التمرين، ستكتب بعض الكود لمساعدتك على طهي لازانيا رائعة من كتاب الطبخ المفضل لديك.
لديك أربع مهام، وكلها متعلقة بالوقت الذي تقضيه في طهي اللازانيا.
عرّف طريقة expectedMinutesInOven() التي لا تأخذ أي معاملات وتُرجع عدد الدقائق التي ينبغي أن تبقى فيها اللازانيا في الفرن. وفقًا لكتاب الطبخ، فإن الزمن المتوقع في الفرن بالدقائق هو 40:
Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40
عرّف طريقة remainingMinutesInOven() التي تأخذ عدد الدقائق الفعلي الذي قضته اللازانيا في الفرن كمعامل، وتُرجع عدد الدقائق التي لا يزال يتعين على اللازانيا أن تبقى فيها في الفرن، بناءً على الزمن المتوقع في الفرن بالدقائق من المهمة السابقة.
Lasagna lasagna = new Lasagna();
lasagna.remainingMinutesInOven(30);
// => 10
عرّف طريقة preparationTimeInMinutes() التي تأخذ عدد الطبقات التي أضفتها إلى اللازانيا كمعامل، وتُرجع عدد الدقائق التي استغرقتها في تحضير اللازانيا، بافتراض أن كل طبقة تستغرق منك دقيقتين للتحضير.
Lasagna lasagna = new Lasagna();
lasagna.preparationTimeInMinutes(2);
// => 4
عرّف طريقة totalTimeInMinutes() التي تأخذ معاملين: المعامل الأول هو عدد الطبقات التي أضفتها إلى اللازانيا، والمعامل الثاني هو عدد الدقائق التي قضتها اللازانيا في الفرن. ينبغي أن تُرجع الدالة إجمالي عدد الدقائق التي عملت فيها على طهي اللازانيا، وهو مجموع زمن التحضير بالدقائق، والزمن بالدقائق الذي قضته اللازانيا في الفرن في تلك اللحظة.
Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
سجّل في Exercism لتتعلّم وتتقن Java عبر 26 مفهومًا158 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.