یکی از فیچرهایی که در زبانهای برنامهنویسی به منظور انجام تَسکهای تکراری و کدنویسی اصولیتر گنجانده شده است مفهومی تحت عنوان Method میباشد. در واقع، متد بلوک کوچکی از کد بوده و لیستی از کارهایی را شامل میشود که قرار است تا به ترتیب خاصی یکی پس از دیگری اجرا شوند به طوری که هر متد نام منحصربهفرد خود را داشته و بدین طریق در نقاط مختلف اپلیکیشن میتوان آن را با نام متناظرش فراخوانی کرده و دستورات داخل آن را اجرا کرد که برای روشنتر شدن این مسئله، کد زیر را مد نظر قرار میدهیم:
public class HelloWorld {
public static void main(String[] args) {
String text = "In the name of God";
System.out.println(text);
}
}
کد فوق، مربوط به اولین پروژۀ جاوایی است که در آموزشهای گذشته آن را پیاده سازی کردیم و در تفسیر آن باید گفت که در سطر اول با بهکارگیری کیورد class
کلاسی به نام HelloWorld
نوشتهایم که در آن هر یک از علائم { }
پس از نام کلاس و در انتهای سطر ششم تشکیلدهندۀ یک بلوک هستند و کل برنامۀ فوق را شامل میشوند و در سطر دوم متدی به نام ()main
تعریف کردهایم که در آموزشهای آتی به تشریح هر یک از کیوردهای مربوط نحوۀ تعریف این متد خواهیم پرداخت.
به خاطر داشته باشید |
ذکر کیورد public پیش از نام کلاس منجر بدین میشود تا کلاس مد نظر از طریق سایر کلاسهای تعریفشده در تمامی پکیجهای اپلیکشن قابلدسترسی باشد و در غیر این صورت نیز زبان برنامهنویسی جاوا به صورت دیفالت سطح دسترسی به اصطلاح package را برای کلاس در نظر میگیرد و بدین ترتیب تنها از کلاسهای تعریفشده در پکیج مرتبط با کلاس مد نظر میتوان به آن دسترسی داشت. |
اما در ارتباط با نحوۀ عملکرد متد ()main
باید گفت که با تعریف این متد، به کامپایلر جاوا دستور داده میشود که نقطۀ آغازین برنامه از سطر مربوط به تعریف این متد بوده و در حین اجرا نیز سیستم به صورت خودکار برنامه نوشتهشده را از متد ()main
به بعد اجرا مینماید. در خطوط سوم و چهارم یکسری دستورات مبنی بر چاپ استرینگ «In the name of God» در کنسول را نوشتهایم که در ادامه هر یک از این دستورات را مورد بررسی قرار میدهیم.
در متد ()main
ابتدا یک آبجکت از نوع استرینگ متعلق به کلاس String
تحت عنوان text
ساختهایم و استرینگ «In the name of God» را بدان منتسب کردهایم که در این دستور کیورد String
یک به اصطلاح API Identifier است و واژۀ text
نیز یک Identifier میباشد (جهت کسب اطلاعات بیشتر در رابطه با هر یک از این مفاهیم به آموزش آشنایی با مفهوم کلیدواژه در زبان برنامهنویسی جاوا مراجعه نمایید.) دستور سطر چهارم نیز متشکل از سه کیورد out
،println
و System
میباشد که همگی یکسری API Identifier در زبان برنامهنویسی جاوا میباشند که این وظیفه را دارند تا متغیر text
از نوع استرینگ را در کنسول چاپ کنند.
به طور کلی، میتوان گفت که متدها مجموعهای از دستورات هستند که به منظور انجام تَسکی خاص نوشته شدهاند که در صورت فراخوانی فانکشن مد نظر تَسک مربوطه اجرا شده و نتیجۀ حاصل از اجرا را ریترن میکند (همچنین توجه داشته باشیم که برخی از متدها به منظور انجام یکسری کارهای خاص پیادهسازی شده و چیزی را در خروجی ریترن نمیکنند.) همچنین برخی زبانهای برنامهنویسی از دو مفهوم تحت عنوان Method و Function برخوردار هستند که در ادامه قصد داریم تا به تشریح تفاوت آنها بپردازیم.
آشنایی با تفاوتهای مابین متد و فانکشن
در حالت کلی، متدها و فانکشنها کاربردی یکسان داشته و هر دو به منظور تعریف یکسری بلوک کد سپس فراخوانی آنها جهت انجام برخی دستورات مورد استفاده قرار میگیرند مضاف بر اینکه هر دو میتوانند با اجرای یکسری دستورات داخلی نتیجهای را در خروجی ریترن کنند اما در عین حال برخی تفاوتهایی با یگدیگر دارند مثلاً اینکه متدها صرفاً در داخل کلاس تعریف شده و از همین روی به منظور فراخوانی آنها نیاز به ساخت آبجکت از روی کلاس مربوطه داریم تا بدین وسیله متد مد نظر خود را بر روی آبجکت ساختهشده از روی آن کلاس فراخوانی کنیم در حالی فانکشنها را میتوان در تمامی نقاط برنامه تعریف کرده و به منظور فراخوانی نیازی به ساخت آبجکت ندارند به طوری که با بهکارگیری نامشان میتوان آنها را کال (فراخوانی) کرد.
بنابراین بهکارگیری متدها در برنامهنویسی قابلیت استفادۀ مجدد سورسکد را افزایش داده و منجر بدین میشود تا در صورت نیاز به اجرای برخی تَسکها به راحتی بتوان متد مرتبط با آن را فراخوانی کرده و از نوشتن دوبارۀ کدها خودداری کرد مضاف بر اینکه در زبان برنامهنویسی جاوا، برخلاف زبانهایی همچون سیپلاسپلاس و پایتون، تمامی متدها میباید حتماً در داخل کلاس مربوطه پیادهسازی شده و بخشی از آن کلاس باشند.