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 از دو نوع «کامنت» پشتیبانی میکند.
کامنتهای تکخطی با // شروع میشوند و کامنتهای چندخطی بین /* و */ قرار میگیرند.
در این تمرین قرار است code بنویسید تا به شما کمک کند یک لازانیای عالی را از کتاب آشپزی محبوبتان بپزید.
چهار کار دارید که همه به زمان صرفشده برای پخت لازانیا مربوط میشوند.
«متد 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