مقدمه ی استفاده از Constructor در جاوا
وقتی که شما یک کلاس مثل Employee ایجاد می کنید و با استفاده از دستور زیر، از آن یک شیء نمونه گیری می کنید، در حقیقت شما سازنده ی(constructor) کلاس Employee را صدا می زنید. این سازنده به طور پیش فرض توسط کامپایلر جاوا، ارائه می شود.
Employee chauffeur = new Employee();
این، یک سازنده(constructor ) که یک شیء را ایجاد می کند . سازنده ی پیش فرض(default constructor) یک سازنده است که نیازی به آرگومان ندارد. اگر یک کلاس داشته باشیم و برای آن کلاس، خودمان هیچ سازنده ای تعریف نکنیم، آنگاه کامپایلر جاوا به طور اتوماتیک برای این کلاس، یک سازنده ایجاد می کند.
هنگامی که سازنده ی پیش فرضِ کلاس Employee فراخوانی می شود، این سازنده یک شیء Employee را ایجاد می کند و در داخل متغیر مورد نظر قرار می دهد.
این سازنده که به طور اتوماتیک تولید شده است، بر روی متغیر های یک شیء کارهای زیر را اعمال می کند:
- متغیرهای عددی را برابر با 0 می کند.
- متغیرهای کاراکتری را برابر با یونیکد \('\setminus u0000'\) می کند.
- متغیرهای بولین را برابر با false می کند.
- متغیرهایی که به خودی خود شیء هستند(مثلا متغیرهای String) را برابر با null می کند.
اگر نمی خواهید که این مقادیر پیش فرض، بر تمام متغیرهای درون یک شیء اعمال شوند، و یا اگر می خواهید هنگام ایجاد یک نمونه از یک کلاس، کارهای دیگری را نیز بر روی متغیرها انجام دهید، می توانید خودتان یک سازنده تولید کنید.
اگر بخواهید یک سازنده ایجاد کنید، نام این سازنده باید با نام کلاس یکسان باشد. همچنین خوب است بدانید که شما نمی توانید برای سازنده ها، یک نوع برگشتی (حتی void) در نظر بگیرید.
معمولا سازنده ها از نوع public تعریف می شوند. بنابراین دیگر کلاس ها می توانند اشیائی را نمونه گیری کنند که به این کلاس تعلق داشته باشد. وقتی که شما یک سازنده برای یک کلاس می نویسید، دیگر به آن سازنده ای که به طور اتوماتیک ایجاد شده است، دسترسی ندارید.
به عنوان مثال، اگر شما بخواهید که هر یک از کلاس Employee برای شروع، حقوقش در هفته 300.00دلار باشد، می توانید یک سازنده برای کلاس Employee بنویسید. این سازنده در عکس 3.24 نشان داده شده است. اکنون هر شیء ای که از کلاس Employee نمونه گیری کنیم، یک متغیر به نام empSalary خواهد داشت که برابر با 300.00 است . اما دیگر متغیرهای کلاس Employee همان تنظیمات پیش فرض را خواهند داشت. حتی اگر شما یک متغیر از یک شیء را مقدار دهی اولیه نکنید، این متغیر دارای یک مقدار پیش فرض خواهد بود.
شما می توانید هر دستور جاوا را در داخل یک سازنده بنویسید. با اینکه برای این کار هیچ دلیلی وجود ندارد، اما می توانید کدهای یک پیغام را در سازنده نویسید و یا کارهای دیگری را انجام دهید.
شما می توانید سازنده ی خود را در هر جایی از کلاس قرار دهید اما باید بیرون از متدهای آن کلاس قرار گیرد. برنامه نویسان معمولا سازنده را در ابتدای کلاس قرار می دهند، زیرا وقتی که یک شیء ایجاد می شود، اولین متدی که اجرا می شود، متد سازنده است. شما مجبور نیستید تا حتما برای یک کلاس، یک سازنده تعریف کنید. زیرا اگر هیچ سازنده ای برای کلاس تعریف نکرده باشید، جاوا یک سازنده ی پیش فرض به این کلاس اختصاص می دهد.
نکته: یک کلاس، می تواند چندین سازنده داشته باشد. این موضوع در فصل بعدی توضیح داده شده است.
- نوشته شده توسط احسان عباسی
- بازدید: 4170