سازنده در جاوا – انجمن DEV

Summarize this content to 400 words in Persian Lang
سازنده ها در برنامه نویسی جاوا ضروری هستند زیرا آنها اشیاء را مقداردهی اولیه می کنند و آنها را برای استفاده آماده می کنند. اگر اصول انواع سازنده ها، بارگذاری بیش از حد سازنده و زنجیره سازی سازنده را درک کنید، می توانید کلاس هایی با طراحی خوب و انعطاف پذیر در برنامه های جاوا خود ایجاد کنید.
سازنده ها نقش اساسی در مقداردهی اولیه اشیاء یک کلاس دارند. هنگام کار با زبان های برنامه نویسی محبوب مانند جاوا یا جاوا اسکریپت می توانید انتظار مشاهده آن را داشته باشید. این پست سازنده ها در جاوا و کاربردهای آن را پوشش می دهد.
سازندگان چیست؟
سازنده ها متدهای تخصصی هستند که می توانید از آنها برای مقداردهی اولیه شی یک کلاس در برنامه نویسی جاوا استفاده کنید. با این حال، شما نیاز به ایجاد یک شی با استفاده از کلمه کلیدی “جدید” قبل از مقداردهی اولیه وضعیت شی دارید.
ویژگی های سازندگان
جاوا حاوی قوانینی است که استفاده از سازنده ها را کنترل می کند. قوانین بینشی از ویژگی های سازنده ها ارائه می دهند و در زیر خلاصه آن آمده است.
استفاده اولیه از سازنده ها مقداردهی اولیه اشیاء جدید یک کلاس است. آنها با تنظیم مقادیر اولیه برای متغیرهای نمونه، اطمینان حاصل می کنند که اشیاء با یک حالت معتبر شروع می شوند. سازنده ها باید همان نام کلاسی که با آن مطابقت دارند داشته باشند. این یک روش استاندارد است زیرا جاوا را قادر می سازد تا هنگام ایجاد یک شی، سازنده های مناسب را شناسایی و فراخوانی کند. سازنده ها شبیه به متدها هستند، اما اولی نوع بازگشتی ندارد، حتی “void” هم ندارد. سازنده ها معمولاً مسئول مقداردهی اولیه اشیاء جدید به جای برگرداندن مقادیر هستند. فراخوانی خودکار یکی دیگر از ویژگی های سازنده است زیرا می توانید آن را با استفاده از کلمه کلیدی “جدید” در طول ایجاد شی فعال کنید.
انواع سازندگان
سازنده ها می توانند در دو دسته کلی قرار گیرند: سازنده های پیش فرض یا پارامتر. بخش زیر کاربردها و نحوه تمایز بین دو نوع تنگ کننده را پوشش می دهد.
سازندگان پیش فرض
سازنده های پیش فرض آن دسته از سازنده هایی هستند که هیچ پارامتری به طور صریح در کلاس تعریف نشده است. این نام به خودی خود توضیحی است زیرا جاوا به طور خودکار یک سازنده «پیشفرض» را ارائه میکند، اگر شما به صراحت یک سازنده را در یک کلاس مشخص نکنید.
ذکر این نکته ضروری است که یک سازنده پیش فرض هیچ آرگومان نمی گیرد و متغیرهای نمونه را به مقادیر پیش فرض آنها مقداردهی اولیه می کند. شما می توانید به طور ضمنی سازنده پیش فرض را با استفاده از کلمه کلیدی “جدید” بدون تعیین آرگومان فراخوانی کنید. در زیر یک کد نمونه برای نشان دادن بهتر استفاده از سازنده های پیش فرض آورده شده است.
`کلاس عمومی DefaultConstructorExample {// متغیر نمونهپیام رشته خصوصی؛
// Default constructor
public DefaultConstructorExample() {
// Constructor body
message = “Hello, World!”; // Initialize instance variable with default message
}
// Method to display message
public void displayMessage() {
System.out.println(message); // Print the message
}
public static void main(String[] args) {
// Creating an object of DefaultConstructorExample class
DefaultConstructorExample obj = new DefaultConstructorExample();
// Displaying the message using the object
obj.displayMessage(); // Output: Hello, World!
}}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
`
کلاس DefaultConstructorExample حاوی یک سازنده پیش فرض است که هیچ پارامتری به طور صریح تعریف نشده است. مقدار اولیه متغیر پیام (Hello, World!) در داخل سازنده رخ می دهد. ایجاد یک شی از کلاس با استفاده از کلمه کلیدی جدید به طور خودکار سازنده پیش فرض را فراخوانی می کند و مقدار اولیه پیام را آغاز می کند. در نهایت متد displayMessage() روی شیء فراخوانی می شود تا پیام را چاپ کند.
سازنده پارامتری شده
سازندههای پارامتر، پارامترها را در حین ایجاد آبجکت میپذیرند تا وضعیت شی را مقداردهی کنند. این پارامتر با ارسال آرگومان های خاص به نیازهای شی، مقداردهی اولیه اشیاء را به صورت سفارشی امکان پذیر می کند.
بر خلاف سازنده های پیش فرض، سازنده های پارامتر یک یا چند آرگومان را در خود جای می دهند. آنها متغیرهای نمونه را با مقادیر ارائه شده به عنوان آرگومان در طول ایجاد شی مقداردهی اولیه می کنند. پارامترها با اجازه دادن به مجموعههای مختلف مقادیر به عنوان آرگومان، انعطافپذیری را در مقداردهی اولیه شی فراهم میکنند. با این حال، شما باید به صراحت سازنده های پارامتر را بر اساس الزامات کلاس تعریف کنید.
`شخص کلاس عمومی {// متغیرهای نمونهنام رشته خصوصی;خصوصی int سن؛
// Parameterized constructor
public Person(String name, int age) {
// Constructor body
this.name = name; // Initialize name
this.age = age; // Initialize age
}
// Method to display person’s information
public void displayInfo() {
System.out.println(“Name: ” + name);
System.out.println(“Age: ” + age);
}
public static void main(String[] args) {
// Creating an object of Person class using parameterized constructor
Person person = new Person(“John Doe”, 30);
// Displaying person’s information
person.displayInfo();
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
}`
کلاس Person شامل یک سازنده پارامتر است که دو پارامتر نام و سن را می پذیرد. متغیرهای نمونه با مقادیر به عنوان آرگومان های داخل سازنده مقداردهی اولیه می شوند. مقادیر ارائه شده حالت شی را هنگام ایجاد یک شی از کلاس Person با استفاده از سازنده پارامتر مقداردهی اولیه می کنند. متد displayInfo() روی شیء فراخوانی می شود تا اطلاعات شخص را چاپ کند.
اضافه بار سازنده
بارگذاری بیش از حد سازنده ها زمانی است که چندین سازنده را در یک کلاس تعریف می کنید که هر کدام دارای لیست پارامترهای متفاوتی هستند. سازنده ها نام یکسانی دارند اما در تعداد یا نوع پارامترهایی که می پذیرند متفاوت هستند. آنها انعطاف پذیری را در طول مقداردهی اولیه شی با اجازه دادن راه های متعدد برای ایجاد اشیاء با مجموعه های مختلف مقادیر اولیه فراهم می کنند.
بارگذاری بیش از حد سازنده برای عملکرد مؤثر به قوانین و مقررات متکی است. به عنوان مثال، آنها از قوانین مشابهی پیروی می کنند که بیش از حد روش است. سازنده ها همچنین باید لیست های پارامترهای مختلف (تعداد یا انواع پارامترها) داشته باشند. همچنین لازم به ذکر است که انواع بازگشتی سازنده ها برای بارگذاری بیش از حد در نظر گرفته نمی شوند زیرا آنها نوع بازگشتی ندارند و حتی فاقد اعتبار هستند.
کلاس عمومی MyClass {ارزش int خصوصی;
// Default constructor
public MyClass() {
value = 0;
}
// Parameterized constructor
public MyClass(int v) {
value = v;
}
// Method to get value
public int getValue() {
return value;
}
public static void main(String[] args) {
// Creating objects using different constructors
MyClass obj1 = new MyClass(); // Default constructor
MyClass obj2 = new MyClass(10); // Parameterized constructor
System.out.println(obj1.getValue()); // Output: 0
System.out.println(obj2.getValue()); // Output: 10
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
}`
در مثال بالا، MyClass دو سازنده دارد: یک سازنده پیشفرض که مقدار را به 0 مقدار دهی میکند و یک سازنده پارامتری که مقدار را با آرگومان ارائه شده مقداردهی اولیه میکند. برای ایجاد انعطاف پذیری در مقداردهی اولیه شی، می توانید اشیاء را با استفاده از هر سازنده ایجاد کنید.
زنجیر زنی سازنده
زنجیره سازی سازنده به این اطلاق می شود که سازنده دیگری را در همان کلاس یا در سوپرکلاس فراخوانی می کند. این فرآیند امکان استفاده مجدد از منطق اولیه سازی را فراهم می کند و به جلوگیری از تکرار کد کمک می کند.
شما می توانید از کلمات کلیدی “this()” و “super()” در فرآیند زنجیره سازی سازنده استفاده کنید. کلمه کلیدی “this()” سازنده دیگری را در همان کلاس فراخوانی می کند، در حالی که کلمه کلیدی “super()” سازنده ای از سوپرکلاس را فرا می خواند. کلمات کلیدی همچنین اطمینان حاصل می کنند که سازنده فراخوانی شده قبل از سازنده فراخوان اجرا می شود.
“ وسیله نقلیه کلاس عمومی {نوع رشته خصوصی;سال خصوصی خصوصی؛
// Constructor chaining using ‘this()’
public Vehicle() {
this(“Car”, 2020); // Calls parameterized constructor with default values
}
// Parameterized constructor
public Vehicle(String type, int year) {
this.type = type;
this.year = year;
}
public static void main(String[] args) {
// Creating an object of Vehicle class
Vehicle vehicle = new Vehicle();
System.out.println(“Type: ” + vehicle.type); // Output: Type: Car
System.out.println(“Year: ” + vehicle.year); // Output: Year: 2020
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
}
سازنده پیشفرض کلاس Vehicle سازنده پارامتری شده را با استفاده از this() فراخوانی میکند، که متغیرهای نوع و سال را با مقادیر پیشفرض مقداردهی اولیه میکند. کد نمونه زنجیره سازی سازنده را با استفاده از کلمه کلیدی this() نشان می دهد.
بهترین روش ها و نکات
برای بهبود خوانایی کد پروژه های خود، نام پارامترهای معنی دار را برای سازنده خود انتخاب کنید. سعی کنید از قراردادهای نامگذاری سازنده پیروی کنید، مانند استفاده از camelCase و شروع با حروف کوچک.شما باید از اجرای منطق یا محاسبات پیچیده در سازنده ها برای افزایش مقداردهی اولیه وظایف خودداری کنید. سازندگان را ساده و مختصر نگه دارید و از اصل مسئولیت واحد پیروی کنید.همیشه باید سازنده های خود را با استفاده از نظرات یا جاوا داک مستند کنید تا مستندات واضحی را برای کاربران کلاس های خود ارائه دهید.
نتیجه گیری
سازنده ها در برنامه نویسی جاوا ضروری هستند زیرا آنها اشیاء را مقداردهی اولیه می کنند و آنها را برای استفاده آماده می کنند. اگر اصول انواع سازنده ها، بارگذاری بیش از حد سازنده و زنجیره سازی سازنده را درک کنید، می توانید کلاس هایی با طراحی خوب و انعطاف پذیر در برنامه های جاوا خود ایجاد کنید. هنگام کار با سازنده ها برای نوشتن کد تمیز و قابل نگهداری، مطمئن شوید که بهترین شیوه ها و دستورالعمل ها را دنبال می کنید.
سازنده ها در برنامه نویسی جاوا ضروری هستند زیرا آنها اشیاء را مقداردهی اولیه می کنند و آنها را برای استفاده آماده می کنند. اگر اصول انواع سازنده ها، بارگذاری بیش از حد سازنده و زنجیره سازی سازنده را درک کنید، می توانید کلاس هایی با طراحی خوب و انعطاف پذیر در برنامه های جاوا خود ایجاد کنید.
سازنده ها نقش اساسی در مقداردهی اولیه اشیاء یک کلاس دارند. هنگام کار با زبان های برنامه نویسی محبوب مانند جاوا یا جاوا اسکریپت می توانید انتظار مشاهده آن را داشته باشید. این پست سازنده ها در جاوا و کاربردهای آن را پوشش می دهد.
سازندگان چیست؟
سازنده ها متدهای تخصصی هستند که می توانید از آنها برای مقداردهی اولیه شی یک کلاس در برنامه نویسی جاوا استفاده کنید. با این حال، شما نیاز به ایجاد یک شی با استفاده از کلمه کلیدی “جدید” قبل از مقداردهی اولیه وضعیت شی دارید.
ویژگی های سازندگان
جاوا حاوی قوانینی است که استفاده از سازنده ها را کنترل می کند. قوانین بینشی از ویژگی های سازنده ها ارائه می دهند و در زیر خلاصه آن آمده است.
استفاده اولیه از سازنده ها مقداردهی اولیه اشیاء جدید یک کلاس است. آنها با تنظیم مقادیر اولیه برای متغیرهای نمونه، اطمینان حاصل می کنند که اشیاء با یک حالت معتبر شروع می شوند.
سازنده ها باید همان نام کلاسی که با آن مطابقت دارند داشته باشند. این یک روش استاندارد است زیرا جاوا را قادر می سازد تا هنگام ایجاد یک شی، سازنده های مناسب را شناسایی و فراخوانی کند.
سازنده ها شبیه به متدها هستند، اما اولی نوع بازگشتی ندارد، حتی “void” هم ندارد. سازنده ها معمولاً مسئول مقداردهی اولیه اشیاء جدید به جای برگرداندن مقادیر هستند.
فراخوانی خودکار یکی دیگر از ویژگی های سازنده است زیرا می توانید آن را با استفاده از کلمه کلیدی “جدید” در طول ایجاد شی فعال کنید.
انواع سازندگان
سازنده ها می توانند در دو دسته کلی قرار گیرند: سازنده های پیش فرض یا پارامتر. بخش زیر کاربردها و نحوه تمایز بین دو نوع تنگ کننده را پوشش می دهد.
سازندگان پیش فرض
سازنده های پیش فرض آن دسته از سازنده هایی هستند که هیچ پارامتری به طور صریح در کلاس تعریف نشده است. این نام به خودی خود توضیحی است زیرا جاوا به طور خودکار یک سازنده «پیشفرض» را ارائه میکند، اگر شما به صراحت یک سازنده را در یک کلاس مشخص نکنید.
ذکر این نکته ضروری است که یک سازنده پیش فرض هیچ آرگومان نمی گیرد و متغیرهای نمونه را به مقادیر پیش فرض آنها مقداردهی اولیه می کند. شما می توانید به طور ضمنی سازنده پیش فرض را با استفاده از کلمه کلیدی “جدید” بدون تعیین آرگومان فراخوانی کنید. در زیر یک کد نمونه برای نشان دادن بهتر استفاده از سازنده های پیش فرض آورده شده است.
`کلاس عمومی DefaultConstructorExample {
// متغیر نمونه
پیام رشته خصوصی؛
// Default constructor
public DefaultConstructorExample() {
// Constructor body
message = "Hello, World!"; // Initialize instance variable with default message
}
// Method to display message
public void displayMessage() {
System.out.println(message); // Print the message
}
public static void main(String[] args) {
// Creating an object of DefaultConstructorExample class
DefaultConstructorExample obj = new DefaultConstructorExample();
// Displaying the message using the object
obj.displayMessage(); // Output: Hello, World!
}}
`
کلاس DefaultConstructorExample حاوی یک سازنده پیش فرض است که هیچ پارامتری به طور صریح تعریف نشده است. مقدار اولیه متغیر پیام (Hello, World!) در داخل سازنده رخ می دهد. ایجاد یک شی از کلاس با استفاده از کلمه کلیدی جدید به طور خودکار سازنده پیش فرض را فراخوانی می کند و مقدار اولیه پیام را آغاز می کند. در نهایت متد displayMessage() روی شیء فراخوانی می شود تا پیام را چاپ کند.
سازنده پارامتری شده
سازندههای پارامتر، پارامترها را در حین ایجاد آبجکت میپذیرند تا وضعیت شی را مقداردهی کنند. این پارامتر با ارسال آرگومان های خاص به نیازهای شی، مقداردهی اولیه اشیاء را به صورت سفارشی امکان پذیر می کند.
بر خلاف سازنده های پیش فرض، سازنده های پارامتر یک یا چند آرگومان را در خود جای می دهند. آنها متغیرهای نمونه را با مقادیر ارائه شده به عنوان آرگومان در طول ایجاد شی مقداردهی اولیه می کنند. پارامترها با اجازه دادن به مجموعههای مختلف مقادیر به عنوان آرگومان، انعطافپذیری را در مقداردهی اولیه شی فراهم میکنند. با این حال، شما باید به صراحت سازنده های پارامتر را بر اساس الزامات کلاس تعریف کنید.
`شخص کلاس عمومی {
// متغیرهای نمونه
نام رشته خصوصی;
خصوصی int سن؛
// Parameterized constructor
public Person(String name, int age) {
// Constructor body
this.name = name; // Initialize name
this.age = age; // Initialize age
}
// Method to display person's information
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
public static void main(String[] args) {
// Creating an object of Person class using parameterized constructor
Person person = new Person("John Doe", 30);
// Displaying person's information
person.displayInfo();
}
}
`
کلاس Person شامل یک سازنده پارامتر است که دو پارامتر نام و سن را می پذیرد. متغیرهای نمونه با مقادیر به عنوان آرگومان های داخل سازنده مقداردهی اولیه می شوند. مقادیر ارائه شده حالت شی را هنگام ایجاد یک شی از کلاس Person با استفاده از سازنده پارامتر مقداردهی اولیه می کنند. متد displayInfo() روی شیء فراخوانی می شود تا اطلاعات شخص را چاپ کند.
اضافه بار سازنده
بارگذاری بیش از حد سازنده ها زمانی است که چندین سازنده را در یک کلاس تعریف می کنید که هر کدام دارای لیست پارامترهای متفاوتی هستند. سازنده ها نام یکسانی دارند اما در تعداد یا نوع پارامترهایی که می پذیرند متفاوت هستند. آنها انعطاف پذیری را در طول مقداردهی اولیه شی با اجازه دادن راه های متعدد برای ایجاد اشیاء با مجموعه های مختلف مقادیر اولیه فراهم می کنند.
بارگذاری بیش از حد سازنده برای عملکرد مؤثر به قوانین و مقررات متکی است. به عنوان مثال، آنها از قوانین مشابهی پیروی می کنند که بیش از حد روش است. سازنده ها همچنین باید لیست های پارامترهای مختلف (تعداد یا انواع پارامترها) داشته باشند. همچنین لازم به ذکر است که انواع بازگشتی سازنده ها برای بارگذاری بیش از حد در نظر گرفته نمی شوند زیرا آنها نوع بازگشتی ندارند و حتی فاقد اعتبار هستند.
کلاس عمومی MyClass {
ارزش int خصوصی;
// Default constructor
public MyClass() {
value = 0;
}
// Parameterized constructor
public MyClass(int v) {
value = v;
}
// Method to get value
public int getValue() {
return value;
}
public static void main(String[] args) {
// Creating objects using different constructors
MyClass obj1 = new MyClass(); // Default constructor
MyClass obj2 = new MyClass(10); // Parameterized constructor
System.out.println(obj1.getValue()); // Output: 0
System.out.println(obj2.getValue()); // Output: 10
}
}
`
در مثال بالا، MyClass دو سازنده دارد: یک سازنده پیشفرض که مقدار را به 0 مقدار دهی میکند و یک سازنده پارامتری که مقدار را با آرگومان ارائه شده مقداردهی اولیه میکند. برای ایجاد انعطاف پذیری در مقداردهی اولیه شی، می توانید اشیاء را با استفاده از هر سازنده ایجاد کنید.
زنجیر زنی سازنده
زنجیره سازی سازنده به این اطلاق می شود که سازنده دیگری را در همان کلاس یا در سوپرکلاس فراخوانی می کند. این فرآیند امکان استفاده مجدد از منطق اولیه سازی را فراهم می کند و به جلوگیری از تکرار کد کمک می کند.
شما می توانید از کلمات کلیدی “this()” و “super()” در فرآیند زنجیره سازی سازنده استفاده کنید. کلمه کلیدی “this()” سازنده دیگری را در همان کلاس فراخوانی می کند، در حالی که کلمه کلیدی “super()” سازنده ای از سوپرکلاس را فرا می خواند. کلمات کلیدی همچنین اطمینان حاصل می کنند که سازنده فراخوانی شده قبل از سازنده فراخوان اجرا می شود.
“ وسیله نقلیه کلاس عمومی {
نوع رشته خصوصی;
سال خصوصی خصوصی؛
// Constructor chaining using 'this()'
public Vehicle() {
this("Car", 2020); // Calls parameterized constructor with default values
}
// Parameterized constructor
public Vehicle(String type, int year) {
this.type = type;
this.year = year;
}
public static void main(String[] args) {
// Creating an object of Vehicle class
Vehicle vehicle = new Vehicle();
System.out.println("Type: " + vehicle.type); // Output: Type: Car
System.out.println("Year: " + vehicle.year); // Output: Year: 2020
}
}
سازنده پیشفرض کلاس Vehicle سازنده پارامتری شده را با استفاده از this() فراخوانی میکند، که متغیرهای نوع و سال را با مقادیر پیشفرض مقداردهی اولیه میکند. کد نمونه زنجیره سازی سازنده را با استفاده از کلمه کلیدی this() نشان می دهد.
بهترین روش ها و نکات
برای بهبود خوانایی کد پروژه های خود، نام پارامترهای معنی دار را برای سازنده خود انتخاب کنید.
سعی کنید از قراردادهای نامگذاری سازنده پیروی کنید، مانند استفاده از camelCase و شروع با حروف کوچک.
شما باید از اجرای منطق یا محاسبات پیچیده در سازنده ها برای افزایش مقداردهی اولیه وظایف خودداری کنید.
سازندگان را ساده و مختصر نگه دارید و از اصل مسئولیت واحد پیروی کنید.
همیشه باید سازنده های خود را با استفاده از نظرات یا جاوا داک مستند کنید تا مستندات واضحی را برای کاربران کلاس های خود ارائه دهید.
نتیجه گیری
سازنده ها در برنامه نویسی جاوا ضروری هستند زیرا آنها اشیاء را مقداردهی اولیه می کنند و آنها را برای استفاده آماده می کنند. اگر اصول انواع سازنده ها، بارگذاری بیش از حد سازنده و زنجیره سازی سازنده را درک کنید، می توانید کلاس هایی با طراحی خوب و انعطاف پذیر در برنامه های جاوا خود ایجاد کنید. هنگام کار با سازنده ها برای نوشتن کد تمیز و قابل نگهداری، مطمئن شوید که بهترین شیوه ها و دستورالعمل ها را دنبال می کنید.