پارامترها در Java
متدی به نام greet بنویسید که یک کلمه داخل بگیرد. داخل پرانتز بنویسید String name. در بدنه hi، یک فاصله، و بعد name را چاپ کنید: System.out.println("hi " + name);. از main صدا بزنید greet("lena");. صفحه باید یک خط نشان دهد: hi lena. حروف lena داخل متد ثابت نوشته نشدهاند. از راه صدا زدن میرسند و برای همان دور داخل نام name مینشینند. همین تحویل کار این صفحه است.
یک نام داخل پرانتز
روی صفحهٔ methods پرانتز بعد از ring خالی ماند. چاپ همیشه ding بود. اینجا پرانتز یک نام تایپدار نگه میدارد تا هر صدا بتواند مقدار متفاوت بفرستد. آن نام تایپدار پارامتر است. مقداری که در صدا زدن مینویسید آرگومان همان دور است.
یک برنامهٔ کوچک با نام Tip.java بسازید. public class روی خط اول باید با نام فایل یکی باشد: public class Tip. نام کلاس قدیمی Chime یا Pack را در این فایل نگه ندارید؛ کامپایلر انتظار دارد نام کلاس و نام فایل جور باشند.
بیرون از main، هنوز داخل آکولاد کلاس، بنویسید:
static void greet(String name) {
System.out.println("hi " + name);
}
سرِ متد روی شکل مبتدی این صفحه هنوز با static void شروع میشود. بین پرانتز اول String و بعد name مینشینند — اول نوع، بعد نام پارامتر. بدنه name را بدون گیومه دورش به کار میبرد و با متن ثابت "hi " با علامت بههم میچسباند. گیومه دور "hi " حروف ثابت را علامت میزند. نام لخت همان مقداری را علامت میزند که از صدا زدن رسیده. قبل از کامپایل فایل را ذخیره کنید.
Tip.java با greet
این همان نسخهای است که اول کامپایل میکنید. main صدا زدن را با مقدار داخل پرانتز نگه میدارد. greet چاپی را نگه میدارد که از آن مقدار استفاده میکند.
public class Tip {
public static void main(String[] args) {
greet("lena");
}
static void greet(String name) {
System.out.println("hi " + name);
}
}
در پوشهای که Tip.java آنجاست بنویسید javac Tip.java. وقتی پرانتز و آکولاد و نقطهویرگولها جور باشند، javac خودش خطی نمینویسد. بعد بنویسید java Tip — نه java Tip.java. پسوند .java را از فرمان دوم بردارید. همین دو فرمان در Windows و macOS یکی است؛ این صفحه املای پوستهٔ جدا برای هیچکدام نمیخواهد. برنامه باید یک خط چاپ کند و تمام شود: hi lena. منتظر تایپ شما نمیماند. اگر ترمینال منتظر ماند، هنوز nextLine از تمرین قدیمی داخل فایل است. آن را پاک کنید و greet("lena"); بههمراه متد greet بالا را نگه دارید. برای خط اشتباه روی صفحه لازم نیست JDK را دوباره نصب کنید.
یک اجرای کامل را به ترتیب بخوانید. Java از main شروع میکند. صدای greet("lena"); متن lena را داخل پارامتر name میفرستد. داخل greet، println میسازد hi، یک فاصله، و بعد آن مقدار؛ پس صفحه hi lena نشان میدهد. بعد greet تمام میشود و main تمام میشود. داخل main ننوشتید System.out.println("hi lena");. بخش ثابت را یکبار زیر greet نوشتید و lena را از صدا زدن فرستادید.
همان متد، کلمههای متفاوت
فقط main را عوض کنید تا greet را دو بار با دو آرگومان متفاوت صدا بزند:
public static void main(String[] args) {
greet("lena");
greet("sam");
}
خودِ متد greet را دست نزنید. دوباره کامپایل و اجرا کنید: javac Tip.java و بعد java Tip. صفحه باید دو خط نشان دهد: hi lena، بعد hi sam. صدای اول name را با lena پر میکند. صدای دوم name را با sam پر میکند. println را زیر greet کپی نکردید. فقط مقدارهای داخل صدا زدن را عوض کردید.
اگر greet() را با پرانتز خالی صدا بزنید در حالی که سر هنوز String name دارد، javac خطا مینویسد — صدا زدن باید یک String بدهد. اگر ring(); قدیمی با پرانتز خالی از صفحهٔ Chime را در همان main نگه دارید، آن صدا با greet جور نیست و متد ring باقیمانده ممکن است کنار خطهای hi هنوز ding چاپ کند. main را تا صداهای greet این درس خلوت کنید.
عدد صحیح بهعنوان مقدار
پارامتر فقط برای متن نیست. متد دومی بنویسید که int بگیرد:
static void show(int n) {
System.out.println(n);
}
از main با عددهای صحیح صدا بزنید:
show(9);
show(4);
public class Tip {
public static void main(String[] args) {
show(9);
show(4);
}
static void show(int n) {
System.out.println(n);
}
}
کامپایل و اجرا کنید: javac Tip.java و بعد java Tip. صفحه باید دو خط نشان دهد: ۹، بعد ۴. دور ۹ یا ۴ در صدا زدن گیومه نمیگذارید — مقدار int هستند، نه متن. داخل show، println(n) عددی را مینویسد که رسیده. وقتی آن دو خط را دیدید، میتوانید دموی greet را برگردانید. هر دو نسخه Java درستاند. همان ایده را نشان میدهند: صدا زدن مقدار میفرستد، پارامتر آن را برای بدنه نگه میدارد.
اجرای int را یکبار دیگر بخوانید. صدای اول n را ۹ میکند و ۹ چاپ میکند. صدای دوم n را ۴ میکند و ۴ چاپ میکند. نام n یکبار در سر بهصورت int n اعلام میشود. هر صدا برای همان دور مقدار تازه میدهد. فرستادن کلمهٔ گیومهدار داخل show، مثل show("nine");، با int روی این شکل جور نیست — javac خطا مینویسد. فرستادن عدد لخت داخل greet، مثل greet(3);، با String جور نیست — دوباره javac خطا مینویسد. نوع آرگومان را با نوع پارامتر جور کنید.
اشتباه رایج چاپ کردن خودِ نام پارامتر بهصورت متن است: System.out.println("name");. آن خط حروف n-a-m-e را مینویسد، نه lena را. وقتی میخواهید حروف آرگومان روی صفحه باشد، println("hi " + name) را بدون گیومه دور name نگه دارید. اشتباه دیگر اعلام پارامتر داخل main است بهجای سرِ متد. نام تایپدار داخل greet(...) یا show(...) مینشیند، نه داخل پرانتز main روی این صفحه. String[] args داخل main موضوع جلسهٔ دیگری است؛ args را به name عوض نکنید و انتظار نداشته باشید greet آن را ببیند.
این صفحه شما را کجا میگذارد
میتوانید String name یا int n را داخل پرانتز متد بگذارید، مقدار جور را در صدا زدن بفرستید، و آن مقدار را از بدنه چاپ کنید. دو صدا با دو آرگومان دو خط متفاوت چاپ میکنند بدون کپی متد. void هنوز یعنی از راه صدا زدن چیزی برنمیگردد. صفحهٔ بعد return است؛ آنجا متد بهجای اینکه فقط داخل بدنه چاپ کند، مقداری به main برمیگرداند.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود