متد ها در جاوا یکی از مهمترین ابزارهای ما برای جلوگیری از دوباره کاری هستند. در این پست میخواهیم در مورد چگونگی تعریف متد ها صحبت کنیم و با یک مثال شرح دهیم.
خب برای شروع یک پروژهی جدید به اسم Methods بسازید. (قبلا آموزشش رو توی این پست دادم). دستورات زیر رو داخل main اون وارد کنید:
boolean gameover = true; int score = 5000; int levelComplete = 5; int bonus = 100; if(gameover){ int finalScore = score + (levelComplete * bonus); System.out.println("Your final score:" + finalScore); } score = 10000; levelComplete = 8; bonus = 200; if(gameover){ int finalScore = score + (levelComplete * bonus); System.out.println("Your final score:" + finalScore); }
خب اگه به کد دقت کنید، میبینید که یه کاری رو ما ۲ بار داریم تکرار میکنیم. در طول برنامتون، ممکنه به کدی تکراری بارها و بارها احتیاج داشته باشین. خب نمیشه که هر سری بیایم بنویسیم اون کد رو. برای همین از method ها استفاده میکنیم.
یه چیزی بگم قبل از هرچیزی، متد رو شما قبلا توی همین برنامهی خودتون دیدین. main خودش یه متد هستش از کلاس Main.
خب کل کد رو به این تغییر بدین:
public class Main { public static void main(String[] args) { boolean gameover = true; int score = 5000; int levelComplete = 5; int bonus = 100; calculateScore(); score = 10000; levelComplete = 8; bonus = 200; if(gameover){ int finalScore = score + (levelComplete * bonus); System.out.println("Your final score:" + finalScore); } } public static void calculateScore(){ boolean gameover = true; int score = 5000; int levelComplete = 5; int bonus = 100; if(gameover){ int finalScore = score + (levelComplete * bonus); System.out.println("Your final score:" + finalScore); } } }
ترجیح دادم با مثال توضیح بدم بهتون این مورد رو.
ما اومدیم الان یه متد ساختیم به اسم calculateScore و اون رو توی متد main صدا زدیم. به همین سادگی 🙂
خب در مورد public و void و static بعدا توضیح میدم.
یه سری مقادیر رو میشه فرستاد توی متد. بیایم کد رو اینجوری تغییر بدیم:
public static void main(String[] args) { boolean gameover = true; int score = 5000; int levelComplete = 5; int bonus = 100; calculateScore(true,5000,5,100); score = 10000; levelComplete = 8; bonus = 200; if(gameover){ int finalScore = score + (levelComplete * bonus); System.out.println("Your final score:" + finalScore); } } public static void calculateScore(boolean gameover, int score, int levelComplete, int bonus){ if(gameover){ int finalScore = score + (levelComplete * bonus); System.out.println("Your final score:" + finalScore); } }
به همین سادگی میشه از این متد بارها استفاده کرد حالا :
public static void main(String[] args) { boolean gameover = true; int score = 5000; int levelComplete = 5; int bonus = 100; calculateScore(true,5000,5,100); calculateScore(true,10000,8,200); } public static void calculateScore(boolean gameover, int score, int levelComplete, int bonus){ if(gameover){ int finalScore = score + (levelComplete * bonus); finalScore += 100; System.out.println("Your final score:" + finalScore); } }
خب متدها بعضی وقتا میتونن یک مقدار رو براتون برگردونن. وقتی void مینویسیم قبل از اسم متد، یعنی هیچی بر نمیگردونن. الان توی این مثال میخوام یه مقدار int برگردونم و توی main چاپ کنمش:
public static void main(String[] args) { int score; score = calculateScore(true,5000,5,100); System.out.println("Your final score:" + score); score = calculateScore(true,10000,8,200); System.out.println("Your final score:" + score); } public static int calculateScore(boolean gameover, int score, int levelComplete, int bonus){ if(gameover){ int finalScore = score + (levelComplete * bonus); finalScore += 100; return finalScore; } else{ return 0; } }
به همین سادگی 🙂
همچنین می توانید از طریق این لینک، ویدیوی آموزش متد ها را مشاهده فرمایید.
دیدگاهتان را بنویسید