متد چیست

متد چیست؟ آشنایی با مفهوم متد در برنامه نویسی اندروید

متد (به انگلیسی Method)، یکی از مفاهیم پر استفاده در برنامه نویسی اندروید (زبان جاوا) میباشد. تقریبا هر کاری که بخواهید با زبان جاوا انجام بدهید، متدها در آن حضور دارند. به همین دلیل یاد گرفتن مفهوم آن و اینکه چه مزایایی برای برنامه های شما دارد، یک امر ضروری میباشد. در این مقاله با مفهوم، ساختار، کاربرد و نحوه ی ساخت method ها در زبان جاوا آشنا خواهید شد. با برنامه چی همراه باشید.

این مقاله دارای قسمت های زیر است:
متد چیست؟
ساختار آن چگونه است؟
چه کاربردی دارد؟
چگونه نوشته میشود؟
چطور با آن کار کنیم؟


متد چیست؟

متد در زبان جاوا چیست؟

متد ها مجموعه ای از دستورات در برنامه نویسی هستند که دارای نام خاصی میباشند. شما میتوانید با صدا کردن نام این مجموعه، از دستورات موجود در آن استفاده کنید. به زبان ساده تر، فرض کنید ما یک مجموعه کد نوشته ایم که کار بخصوصی را انجام میدهند (مثلا عمل محاسبه کردن فاکتوریل). ممکن است مجبور باشیم این کد ها را در قسمت های زیادی دوباره استفاده کنیم. بنظر شما چکار باید بکنیم؟ کد ها را هرجایی که خواستیم کپی کنیم؟ آیا بهتر نیست فقط یکبار کد ها را بنویسیم و هرجایی که خواستیم آنها را استفاده کنیم؟این دقیقا کاری است که method ها برای ما انجام میدهند.

ما یک مجموعه از کد ها را جدا میکنیم و روی آنها یک اسم مخصوص میگذاریم. به این مجموعه ها متد میگویند. از این به بعد میتوانیم به جای نوشتن آن کدها، اسم مجموعه را صدا بزنیم تا کاری که میخواهیم برای ما انجام بدهند. بنابراین method دقیقا همان “تابع” میباشد، که ممکن است در زبان های برنامه نویسی دیگر با آنها آشنا شده باشید.


ساختار متد چگونه است؟

متد چگونه نوشته میشود؟

متدها از سه قسمت ورودی، دستورات و خروجی تشکیل شده اند.

  1. ورودی همان مقداری است که هنگام صدا کردن نام متد، برای آن ارسال میکنیم. گفتم که اگر بخواهیم از method خاصی استفاده کنیم، باید نام آنرا در هرجایی که میخواهیم صدا بزنیم. در این مرحله باید داده هایی که میخواهیم متد آنها را پردازش کند، برای آن ارسال کنیم.
  2. دستورات همان کدهایی هستند که درون متد قرار دارند. کدهایی که عمل خاصی را برای ما انجام میدهند و ما آنها را جدا کرده ایم تا یک method بسازیم. رفتار یک method را دستورات آن مشخص میکنند. هنگامی که ورودی برای method ارسال میشود، توسط کدهایی که درون متد قرار دارند پردازش شده و در نهایت یک جواب تولید میشود.
  3. خروجی همان مقداری است که توسط دستورات متد تولید شده است. method ها دو دسته بندی کلی برای خروجی دارند. میتوانند مقداری را به عنوان خروجی برگردانند، یا اینکه میتوانند این کار را نکنند. اگر نوع method طوری باشد که مقداری را برگرداند، این مقدار درون کد های ما جایگزین قسمتی میشود که نام متد را صدا زدیم. یعنی نتیجه، هر چیزی که باشد، به کد های اصلی ما بازگردانده میشود. اما اگر نوع method از نوع بدون بازگشت باشد، هیچ مقداری به سمت کد های ما فرستاده نخواهند شد. یعنی با داده هایی که به عنوان ورودی ارسال کرده ایم، پردازش میشوند و مقداری برای بازگشت تولید نمیشود. ممکن است به جای مقدار، اعمال دیگری روی داده ها انجام شوند. (با این نوع متد ها در زمان برنامه نویسی کاملا آشنا خواهید شد).

متد چه کاربردی دارد؟

متد چه کاربردی دارد؟

متدها از پرکاربرد ترین مفاهیم در برنامه نویسی جاوا میباشند. اگر بخواهیم بدون آنها برنامه نویسی کنیم، حجم کد های ما بسیار زیاد خواهد شد. به عنوان مثال اگر در ۱۰۰ قسمت مختلف، نیاز به یک کد یکسان داشته باشیم، باید آن کد را در همه ی آن ۱۰۰ بخش کپی کنیم.

این یعنی حجم اضافه و پیچیدگی زیاد برنامه. این تازه نصف ماجرا است. دردسر اصلی زمانی خودش را نشان میدهد که قصد داشته باشید یک قسمت از این کد های یکسان را تغییر بدهید. اگر قبول ندارید که این کار بسیار دشوار است، میتوانید یکبار آنرا انجام بدهید. فقط بعد از آن میتوانید به اهمیت وجود method ها پی ببرید.


متد چگونه نوشته میشود؟

ساختار متد چگونه است

نوشتن متد ها در میان کد ها قاعده ی خاصی دارد که باید آنرا رعایت کنید. برای فهمیدن بهتر، توضیحات را روی تصویر نشان میدهم. (اگر هم با اصطلاحاتی که روی تصویر نوشته شده آشنایی ندارید، در قسمت نظرات بپرسید تا سریعا به آنها جواب بدهم).


چطور با متد کار کنیم؟

چطور با متد کار کنیم

برای استفاده از متد ها باید آنها را در جایی که نیاز داریم فراخوانی کنیم. سپس مقدار ورودی را برای آن ارسال میکنیم. در این زمان کنترل برنامه به method منتقل میشود. دستورات درون متد با توجه ورودی های شما اجرا میشوند. بعد از آن method میتواند نتیجه را به عنوان یک خروجی برگرداند یا اینکه خروجی نداشته باشد.


شما چه تجربه ای دارید؟

تجربه درباره متد

شما میتوانید با به اشتراک گذاشتن تجربه ی خود در زمینه method ها، به کامل تر شدن این آموزش کمک کنید. لطفا نظرات خود را در قسمت نظرات با ما در میان بگذارید.


منابع بیشتر برای مطالعه

میتوانید از منابع زیر برای مطالعه بیشتر در این زمینه استفاده کنید:

درباره نویسنده

20 در مورد “متد چیست؟ آشنایی با مفهوم متد در برنامه نویسی اندروید”

  1. سلام …
    مطالبتون خیلی خوب بود تشکر..(◔◡◔)✍
    می خواستم بپرسم که این علامت =+ یعنی چی ؟
    مثلا شما تو اون تصویر ساختار متد نوشته بودید sum +=
    اینو نمیدونستم
    من فقط ۱۴ سالم هست..
    کانال یوتویوبتونم دیدم
    عاللللللللللللیo(*°▽°*)o

    1. سلام دوست عزیز. خسته نباشید و ممنونم بخاطر کامنت خوبتون.
      علامت =+ یه عملگر هست. اون تیکه از کد یکبار مقدار متغیر sum رو با عدد 1 جمع میکنه و دوباره مقدار رو توی sum میریزه.
      یعنی در حقیقت اون تیکه از کد مخفف شده این هست:
      sum = sum+1

      1. اهااا — ?
        یعنی در واقع (sum) میاد تا ابد با 1 تقسیم بر i جمع میشه
        و هر دفع بیشتر میشه!
        مرسی بابت جوابتون??

  2. سلام ممنون از توضیحاتتون.
    راجب متدهای getter , setter مطلبی ندیم.
    اگر لطف کنید بخشی برای توضیح این قسمت بذارین ممنون میشم

    1. سلام و خسته نباشید خدمت شما دوست عزیز.
      خوشحالم که مقاله براتون مفید بوده. متدهای setter و getter برای کنترل دسترسی به یک متغیر استفاده میشن معمولا.
      به این صورت که ما متغیر رو private تعریف میکنیم که فقط داخل کلاس قابل دسترس باشه. اما اگر کسی خواست از بیرون کلاس بهش دسترسی داشته باشه چی؟ اینجا از متدهای setter و getter استفاده میکنیم.فرقشون هم این هست که متد setter یک مقدار رو به عنوان پارامتر ورودی دریافت میکنه و توی متغیر میریزه و هیچ مقدار بازگشتی نداره. اما متد getter میتونه پارامتر ورودی نداشته باشه اما باید متغیر رو برگردونه. یعنی هرجا این متد استفاده میشه، متغیر جایگزینش میشه. این کاری هست که این دو متد انجام میدن. اگر باز هم سوالی بود در خدمتیم.

  3. عرفان عبدغیور

    سلام خسته نباشید .
    واقعا توضیحاتتون عالی بود ولی اگر میشه چند مثال و نمونه کد نحوه کارکردن و صدا زدن متد رو هم بزارید

    1. سلام. خسته نباشید.
      ببینید توی یک کلاس مثلا من میام یه متد به اسم callMe میسازم. نحوه تعریف متد به این صورت هست:
      callMe(){
      کدهای داخل متد
      }
      این میشه تعریف کردن متد.
      برای صدا زدنش هم باید فقط اسم متد رو هرجایی که میخوایم استفاده بشه صدا بزنیم. به این صورت:
      callMe()

      امیدوارم خوب توضیح داده باشم، اما اگز سوال داشتین بپرسین تا بیشتر باز کنم موضوع رو.

  4. سلام
    ۱٫نوع بازگشتی چه فرقی با نوع متغیر ورودی داره؟
    ۲٫اگر نوع method طوری باشد که مقداری را برگرداند، این مقدار درون کد های ما جایگزین قسمتی میشود که نام متد را صدا زدیم. یعنی نتیجه، هر چیزی که باشد، به کد های اصلی ما بازگردانده میشود—> این قسمت ک نوع بازگشتی جای نام متد میاد رو ماهم میبینم؟کجا اتفاق می افته؟

    1. سلام دوست عزیز، خسته نباشین.
      ببینین متغیر ورودی یعنی اون متغیری که وقتی توی کد، اسم متد رو صدا میزنیم، توی پرانتز این متغیر رو باید به متد بدیم. یعنی جلوی متد که یه پرانتز باز و بسته میذاریم باید یه متغیر به متد بدیم. (البته اگر متد نیاز به متغیر ورودی داشته باشه). بعد متد این متغیر رو میگیره و یک سری عملیات روش انجام میده و یه مقداری تولید میشه در نهایت، این مقدار تولید شده که به ما برگردونده میشه، میشه همون مقدار بازگشتی متد که دیگه الان با متغیر ورودی فرق داره چون یه سری عملیات ها روش انجام شده تا به نتیجه رسیده.
      برای سوال دومتون هم باید بگم که مقدار بازگشتی متد، میاد اونجایی قرار میگیره که ما متد رو صدا زده بودیم. اما این اتفاق جلوی چشم ما نمیوفته، در حقیقت در زمان کامپایل شدن و یا حتی در زمان اجرا ممکنه این اتفاق بیوفته و این جابجایی و تاثیرش رو فقط توی علمکرد نرم افزاری که نوشتین میشه دید.
      باز هم سوالی بود در خدمتم

  5. واقعا توضیحاتتون کاملا روشن و شفاف بود ، جوری که کاملا مفهوم اصطلاح متد رو درک کردم …

    ممنونم از شخص شما

  6. سلام متدها را مانند کلاس های تویه اچ تی ام ال نام دل بخواهی دارن درسته

    پس چرا میگن که فلان متذپد رو اینجا میزاریم ؟؟؟؟

    1. سلام خدمت شما دوست گرامی. بله دقیقا مثل کلاس های اچ تی ام ال، میتونیم برای متدهایی که خودمون مینویسیم هم نام های دلخواه انتخاب کنیم. اما دلیل اینکه مثلا توی آموزش ها میشونوید که میگن فلان متد رو استفاده میکنیم، اینه که توی کتابخانه هایی که برنامه نویس ها استفاده میکنن یک سری متد از پیش نوشته شدهوجود دارن که اسم هاشون مشخصه. معمولا هم برای همه زبان های برنامه نویسی یک سری کتابخانه داریم که توی جهان و بین اکثر برنامه نویس ها بسیار مشهور و پر استفاده هستن. به همین دلیل هم متد هایی که توی کتابخانه هاشون وجود داره اسم های یکسانی داره و برای همه قابل دسترسه. به همین دلیل هم توی آموزش ها دیگه مستقیم میگن که از فلان متد استفاده میکنیم. میتونید برای آشنایی با کتابخانه ها، مقاله مربوطه رو توی سایت خودمون مطالعه کنید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا