اگر عبارتهای تابع( Function ) و متد( Method ) در برنامهنویسی را شنیدهاید و میخواهید مفهوم و تفاوت آنها را بدانید ادامهی این مطلب همراه با مثال پاسخ شما را خواهد داد.
تابع چیست ؟
تابع در برنامهنویسی قطعهای از کد است که با یک نام از سایر بخشهای کد جدا میشود. یک تابع به صورت خودکار اجرا نمیشود و برنامهنویس در صورت نیاز و به تعداد دلخواه آن را اجرا میکند.
در حقیقت تابع در برنامهنویسی، بخشی از کدهای برنامه است که برای انجام یک کار مشخص با ورودیهای مشخص و با خروجی مشخص ایجاد میشود.
برای مثال یک تابع میتواند برای ارسال پیامک ایجاد شود. ورودیهای این تابع شامل موارد زیر خواهند بود:
- شمارهی گیرنده
- متن پیام
هر تابع میتواند خروجی هم داشته باشد. برای مثال تابع ارسال پیامک، مقدار خروجی میتواند true یا false باشد. به معنی اینکه آیا پیام به درستی ارسال شده است یا نه.
مزیت ایجاد تابع
ایجاد تابع در برنامهنویسی چندین مزیت به همراه دارد:
- از تکرار کدها جلوگیری میکند.
- قابلیت استفادهی مجدد را در پروژههای بعدی بیشتر میکند.
- امکان کار گروهی را افزایش میدهد.
- مشکلات برنامهنویسی را به قطعات کوچک و قابل حل تبدیل میکند.
- تغییر دادن پروژه را آسان میکند. برای مثال اگر بخواهیم از یک سرویس پیامک دیگر استفاده کنیم، تنها کافی است کدهای یک تابع را تغییر دهیم و سایر بخشهای برنامه بدون هیچ تغییری کار خود را انجام خواهند داد.
متد چیست ؟
متد در برنامهنویسی شیء گرا کاربرد دارد و از نظر تعریف شباهت زیادی به تابع دارد. تفاوت متد و تابع در محل تعریف آنهاست. متد تابعی است که داخل یک کلاس تعریف میشود و یک فعالیت را روی نمونهی ساخته شده از کلاس به انجام میرساند.
در تعریف تابع دیدیم که چگونه یک تابع مزایای زیادی را برای ما به همراه میآورد. متدها در برنامهنویسی شیء گرا، ابزاری هستند که ارتباط اجزای داخلی کلاس را با محیط بیرون امکانپذیر میکنند.
برای مثال اگر یک کلاس برای ارتباط با پایگاه داده داشته باشیم، متدهای زیر میتوانند داخل این کلاس تعریف شوند:
- متد برای برقراری ارتباط
- متد برای دریافت لیست نتایج
- متد برای حذف یک ردیف از جدول
- متد برای ویرایش یک ردیف جدول
- …
متدهای بالا با توجه به اینکه همگی در فضای کلاس تعریف شدهاند، میتوانند برخی اطلاعات را با هم به اشتراک بگذارند. برای مثال زمانی که ارتباط با پایگاه داده برقرار شود، تمامی توابعی که به ایجاد ارتباط اولیه نیاز دارند، میتوانند در فضای همان ارتباط، دستورات خود را اجرا کنند و نیازی نیست تا پیش از اجرای هر متد، مجددا با پایگاه داده ارتباط برقرار کنیم یا مسیر ارتباطی با پایگاه داده را جایی ذخیره کنیم و آن را به هر متد ارسال کنیم.
مزیت دیگر تعریف متدها یا توابع داخل کلاس این است که نام توابع در داخل یک کلاس میتواند با نام تابعی دیگر در کلاسی دیگر یکسان باشد و از این جهت احتمال تداخل نام از بین میرود.
خلاصه
یک متد یک تابع است که داخل یک کلاس تعریف میشود و علاوه بر مزایایی که توابع معمولی دارند، این مزیت را هم دارد که از تداخل نام با سایر توابع جلوگیری میشود و همچنین این قابلیت را دارد که میتواند اطلاعات دلخواه را با بقیهی توابع داخل همان کلاس به اشتراک بگذارد.
یک متد یک تابع است که داخل یک کلاس تعریف میشود
سلام. برای مثال در سی پلاس پلاس، به نظر میرسه کاری وجود نداره که بتوان با کلاس انجام داد اما با تابع نه!
ممنون از مقاله خوبتون