سازنده ها

آموزش کامل سازنده ها در جاوا (به زبان ساده)

folderشی گرایی
comments1 دیدگاه
اساطیر زبان

در این آموزش با سازنده ها در جاوا آشنا می شوید؛ نحوه ایجاد و استفاده از سازنده ها با کمک مثال.

سازنده چیست؟

سازنده (constructor) شبیه به متد است (اما در واقع متد نیست) که هنگام ایجاد شی فورا به صورت خودکار فراخوانی می شود.

 


جاوا

توی این پک فوق العاده، جاوا رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با جاوا اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

کامپایلر جاوا با استفاده از نام و نوع بازگشتی بین متد و سازنده تفاوت قائل می شود. در جاوا ، سازنده نامی مشابه کلاس دارد و هیچ مقداری را بر نمی گرداند.

class Test {

Test() {

// constructor body

}

}

در اینجا ، ()Test سازنده است. همان نام کلاس را دارد و نوع برگشتی ندارد.

class Test {

void Test() {

// method body

}

}

در اینجا ، ()Test نامی مشابه کلاس دارد. با این حال ، نوع برگشتی آن void است. از این رو ، سازنده نیست و متد است.

مثال: سازنده در جاوا

  1. class ConsMain {
  2. private int x;
  3. // constructor
  4. private ConsMain(){
  5. System.out.println(“Constructor Called”);
  6. x = 5;
  7. }
  8. public static void main(String[] args){
  9. ConsMain obj = new ConsMain();
  10. System.out.println(“Value of x = ” + obj.x);
  11. }
  12. }

خروجی

Constructor Called

Value of x = 5

در اینجا ، سازنده ()ConsMain هنگامی که شیء obj ایجاد می شود ، فراخوانی می شود.

یک سازنده ممکن است آرگومان بپذیرد یا نپذیرد.

سازنده بدون آرگومان

اگر سازنده جاوا هیچ پارامتری را نپذیرد ، سازنده بدون آرگومان (no-arg) است. ساختار آن به این شکل است:

accessModifier ClassName() {

// constructor body

}

نمونه سازنده بدون آرگومان

  1. class NoArgCtor {
  2. int i;
  3. // constructor with no parameter
  4. private NoArgCtor(){
  5. i = 5;
  6. System.out.println(“Object created and i = ” + i);
  7. }
  8. public static void main(String[] args) {
  9. NoArgCtor obj = new NoArgCtor();
  10. }
  11. }

خروجی

Object created and i = 5

در اینجا ، سازنده ()NoArgCtor هیچ پارامتری را نمی پذیرد.

آیا متوجه شدید که سازنده ()NoArgCtor از نوع private است؟

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

با این حال ، اگر شیء خارج از کلاس ایجاد شده است ، شما دسترسی به آن سازنده را باید public کنید. مثلا:

  1. class Company {
  2. String domainName;
  3. // object is created in another class
  4. public Company(){
  5. domainName = “programiz.com”;
  6. }
  7. }
  8. public class CompanyImplementation {
  9. public static void main(String[] args) {
  10. Company companyObj = new Company();
  11. System.out.println(“Domain name = “+ companyObj.domainName);
  12. }
  13. }

خروجی

Domain name = programiz.com

سازنده پیش فرض

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

word image 1

مثال: سازنده پیش فرض

  1. class DefaultConstructor {
  2. int a;
  3. boolean b;
  4. public static void main(String[] args) {
  5. DefaultConstructor obj = new DefaultConstructor();
  6. System.out.println(“a = ” + obj.a);
  7. System.out.println(“b = ” + obj.b);
  8. }
  9. }

برنامه بالا معادل است با:

  1. class DefaultConstructor {
  2. int a;
  3. boolean b;
  4. private DefaultConstructor() {
  5. a = 0;
  6. b = false;
  7. }
  8. public static void main(String[] args) {
  9. DefaultConstructor obj = new DefaultConstructor();
  10. System.out.println(“a = ” + obj.a);
  11. System.out.println(“b = ” + obj.b);
  12. }
  13. }

خروجی

a = 0

b = false

سازنده پارامتری

یک سازنده همچنین ممکن است پارامتر بپذیرد. ساختار آن به شکل زیر است:

accessModifier ClassName(arg1, arg2, …, argn) {

// constructor body

}

مثال: سازنده پارامتری

  1. class Vehicle {
  2. int wheels;
  3. private Vehicle(int wheels){
  4. wheels = wheels;
  5. System.out.println(wheels + ” wheeler vehicle created.”);
  6. }
  7. public static void main(String[] args) {
  8. Vehicle v1 = new Vehicle(2);
  9. Vehicle v2 = new Vehicle(3);
  10. Vehicle v3 = new Vehicle(4);
  11. }
  12. }

خروجی

۲ wheeler vehicle created.

۳ wheeler vehicle created.

۴ wheeler vehicle created.

در اینجا ، ما یک آرگومان از نوع int (تعداد چرخ ها) را در هنگام ایجاد شی به سازنده منتقل کردیم.

سربارگذاری سازنده ها در جاوا

مشابه سربارگذاری متد ، می توانید دو یا چند سازنده هم نام با پارامترهای متفاوت داشته باشید. مثلا:

  1. class Company {
  2. String domainName;
  3. public Company(){
  4. this.domainName = “default”;
  5. }
  6. public Company(String domainName){
  7. this.domainName = domainName;
  8. }
  9. public void getName(){
  10. System.out.println(this.domainName);
  11. }
  12. public static void main(String[] args) {
  13. Company defaultObj = new Company();
  14. Company programizObj = new Company(“programiz.com”);
  15. defaultObj.getName();
  16. programizObj.getName();
  17. }
  18. }

خروجی

default

programiz.com

نکات مهم

  • بلافاصله بعد از فراخوانی اشیا، سازندگان فراخوانی می شوند.
  • دو قانون ایجاد سازنده عبارتند از:
  • نام سازنده جاوا دقیقاً باید با نام کلاس مطابقت داشته باشد.
  • یک سازنده جاوا نباید دارای نوع بازگشتی باشد.
  • اگر یک کلاس سازنده نداشته باشد ، کامپایلر جاوا به طور خودکار یک سازنده پیش فرض را در زمان اجرا ایجاد می کند. سازنده پیش فرض متغیرهای نمونه را با مقادیر پیش فرض مقدار دهی اولیه می کند. به عنوان مثال: متغیر int برابر ۰ می شود.
  • انواع سازنده:
  • سازنده No-Arg – سازنده ای که هیچ آرگومانی را قبول نمی کند
  • سازنده پیش فرض – سازنده ای که بطور خودکار توسط کامپایلر جاوا ایجاد می شود. ( اگر به صراحت تعریف نشده باشد)
  • سازنده پارامتری – برای مشخص کردن مقادیر خاص متغیرها در شی استفاده می شود
  • سازندگان نمی توانند abstract یا static یا final باشند.
  • سازنده را می توان چندین بار تعریف کرد.

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

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

1 دیدگاه. ارسال دیدگاه جدید

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

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

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست