وباکا

آموزش تخصصی برنامه نویسی وب

تابع سازنده تابع مخصوص همنام با کلاس می باشد که در زمان ایجاد شیء از روی کلاس  فراخوانی و اجرا می شود، تابع مخرب تابعی است که عضو کلاس بوده و نام آن بصورت   نام کلاس~ بوده (بعنوان مثال  ~Time()) پیاده سازی آن هم مشابه دیگر توابع عضو است و هنگام از بین رفت شیء اجرا می شود.

سازنده ها و مخرب ها

مقداردهی اولیه دادن به بعضی از اجزای یک شیء قبل از استفاده از آن شیء بسیار متداول است. بعنوان مثال در کلاسی که برای پیاده سازی پشته(Stack) ایجاد می شود، لازم است در شروع کار و قبل از هر کاری به متغیر top مقدار اولیه صفر داده شود.

تابع سازنده تابع مخصوصی است که عضوی از کلاس بوده و همنام کلاس می باشد. هنگام ایجاد شیء از روی کلاس بصورت خودکار این تابع فراخوانی اجرا شده و دستورات داخل آن اجرا می شوند.

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

مثال:

تعریف کلاس تاریخ :
public class myDate {
privateint year;
privateint month;
privateint day;
publicmyDate() {
year = 1380 ;
month = 1 ;
day = 1 ;
}public void   setDate( int y, int m , int d ){
year = y ;
month  = m ;
day  = d ;
}
public void  showDate(){
System.out.println(year+"/"+ month  +"/"+day) ;  }
}

ایجاد نمونه از کلاس تاریخ واستفاده از متدهای آن ها :
public class Program {public static void main(String[] args) {
myDate d = new myDate ();
d.showDate();
d.setDate( 1394 , 11 , 25 );
d.showDate();
}
}

تابع سازنده پارامتردار

تابع سازنده همچنین می تواند دارای یک یا بیشتر پارامتر باشد. به عنوان مثال می توان برای کلاس myDate یک تابع سازنده در نظر گرفت که در زمان ایجاد شیء فراخوانی شود و year,mon,day را مقدار اولیه دلخواه بدهد. ضمن اینکه یک کلاس می تواند بیش از یک تابع سازنده باشد که این توابع از نظر تعداد، نوع و ترتیب پارامترها متفاوت خواهند بود.
public class myDate {
privateint year , month , day;
publicmyDate(int y , int m , int d) {
year = y ;
month = m ;
day = d ;
}public void   setDate( int y, int m , int d ){
year = y ;
month  = m ;
day  = d ;
}
public void  showDate(){
System.out.println(year+"/"+ month +"/"+day) ;  }
}

ایجاد نمونه از کلاس تاریخ واستفاده از متدهای آن ها :
public class Program {public static void main(String[] args) {
myDate d = new myDate ( 1390 , 1 ,16 );
d.showDate();
d.setDate( 1394 , 11 , 25 );
d.showDate();
}
}

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

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

فهرست مطالب