آموزش برنامه نویسی جاوا
آموزش برنامه نویسی جاوا (بخش هجدهم: کار با متدها در جاوا – قسمت دوم)
در بخش قبلی، کار با متدها توضیح داده شد. تقریبا بیشتر برنامه های سطح متوسطی که در ادامه خواهیم نوشت، با همان معلومات کافی خواهند بود. ولی بعضی اوقات حتی در یک برنامه ی ساده نیز ممکن است کمی کار پیچیده شود.
در این بخش به ادامه ی مباحثی در مورد کار با متدها می پردازیم. تا کار با متدها را تقریبا تمام کنیم.
این که می گوییم “تقریبا” ، بدان معنی ست که مباحثی تکمیلی در مورد متدها لازم است در آینده مطرح شود که احتیاج است مطالبی دیگر را ابتدا بلد باشید.
آرگومان های متغیر(Variable Arguments)
در بخش قبلی توضیح دادیم که اگر بخواهیم تعداد ورودی های مختلفی به تابع بدهیم باید از مفهوم Overload برای توابع استفاده نماییم.
از JDK 1.5 به بعد می توانیم توسط مفهوم Variable Arguments ، هر تعداد پارامتر ورودی از یک نوع که می خواهیم به تابع بدهیم.
این نوع ورودی ها آرگومان های متغیر نام دارد که به شکل زیر تعریف می شود.
typeName... parameterName
برای تعریف این گونه پارامترها در تابع، باید نوع متغیر را ابتدا مشخص کنید سپس از سه نقطه (…) بدون فاصله از نوع متغیر استفاده نمایید.
در مرحله ی بعد، نامی دلخواه برای پارامتر دریافتی در مقصد نیز مشخص کنید.
مثال:
public class JavaApplication1 { public static void main(String[] args) { int a = 1; int b = 2; int c = 3; int d = 4; VAMethod(a,b,c,d); } public static void VAMethod(int... numbers){ System.out.print(numbers.length); // numbers نمایش طول متغیر آرایه ای System.out.print(numbers[2]); // numbers نمایش خانه ای از آرایه ی } }
همان طور که در بالا مشاهده می نمایید، numbers یک متغیر آرایه است. و با آن به همان صورتی که با آرایه برخورد می کنیم.
متد finalize
بعضی اوقات در جاوا این امکان وجود دارد که در هنگام از بین رفتن یک شی، عمل خاصی انجام شود.
از بین رفتن شی یعنی این که آن شی از داخل حافظه پاک شود.
عمل خاص می تواند، این گونه باشد که قبل از ، از بین رفتن شی ، عملیاتی همچون بستن فایل ها و یا ارتباطات دیتابیس انجام شود.
این عمل در جاوا توسط متد finalize انجام می شود.
همه ی عملیاتی که می خواهیم در هنگام بسته شدن شی انجام شود باید در متد finalize تعریف شود.
finalize به شکل کلی زیر است:
protected void finalize( ) { // finalize کدهای }