تیکه پاره های جاوا
526 subscribers
93 photos
24 videos
7 files
58 links
سلام خوش اومدید. اینجا یادداشت ها و تکه های جاوا رو کنار هم قرار میدیم :) مطالب کاملا اختصاصی و دستنویس هستند. کپی فقط با ذکر منبع و آیدی کانال❤️

📝برای تدریس پیام دهید
محمدرضا عظیمی‌فرد
🆔 @mrvj475
Download Telegram
💎 تفاوت Constructor و Static Factory Method

🔆 سازنده یا Constructor:
زمانی که یک شی (نمونه / آبجکت) از یک کلاس ایجاد میکنیم، برای مقدار دهی اولیه و استفاده از مشخصات شی، یک کنستراکتور هم ایجاد میکنیم. در این حالت میتوان یکسری مقدار دهی اولیه برای شی قرار داد:
 MyClass class = new Class();

🔆 مشخصات و ویژگی های سازنده:
- اسم سازنده باید هم نام با اسم کلاس باشد
- نوع بازگشتی نداشته باشد
- اگر برای کلاس سازنده ای تعریف نشده باشد، کمپایلر بصورت خودکار یک default constructor برای کلاس قرار خواهد داد.
- سازنده میتواند دارای سطوح دسترسی public, private, protected, default باشد. (اگر سازنده ای پرایوت تعریف شده باشد، خارج از خود کلاس قابل استفاده نخواهد بود.)
- سازنده میتواند بدون ورودی باشد. (default constructor)
- یک کلاس میتواند شامل چند سازنده با ورودی های مختلف باشد.

💡 در مقابل میتوانیم از Static Factory Method ها هم استفاده کنیم. اگر داخل کلاس متدی ایجاد کنیم که نوع بازگشتی یک شی از همین کلاس باشه، به این متد Static Factory Method گفته میشه.

🔆 در اینجا میتونید مزایای استفاده از Static Factory Methods رو مشاهده کنید:
دارای اسم با معنی
نوع بازگشتی دارند
میتوان یک شی ( نمونه / ابجکت) بصورت کنترل شده از یک کلاس بوسیله این متد ها ایجاد کرد (برای مثال الگوی سینگلتون که در آینده با هم بررسی خواهیم کرد)
از آنجا که Static Factory Methods دارای اسم با معنی میباشد، به خوانایی کد کمک میکند

🔰مثال:

LocalDateTime now = LocalDateTime.now();
ایجاد یک نمونه از کلاس LocalDateTime بدون استفاده از کنستراکتور و بوسیله متد استاتیک now
String str = String.valueOf(4);
ایجاد یک نمونه از کلاس String و استفاده از متد استاتیک valueOf برای تبدیل عدد به رشته

#constructor #static #static_factory_method #static_method

@pieceJava
👍4
💎چطور سازنده ها را بهم متصل کنیم؟ (Chaining Constructors)

⚙️ برای ایجاد ارتباط میان سازنده ها (کنستراکتور) دو حالت وجود دارد:
👈 اتصال سازنده ها در یک کلاس
👈 اتصال سازنده های سوپر کلاس در زیر کلاس


🔅 اتصال سازنده ها در یک کلاس
در این حالت از کلیدواژه this() استفاده میکنیم. در واقع this در این مورد اشاره به سازنده های کلاس دارد.(برای خوانایی بهتر کد صفحه را در حالت افقی نگه دارید):

class Chaining{
private String firstname;
private int age;
private String lastname;
//first constructor
public Chaining(String firstname,String lastname)
{
this.firstname = firstname;
this.lastname = lastname;
}
//chaining constructors
public Chaining(int age,String firstname,String lastname){
this(firstname,lastname);
this.age = age;
}
}
در این مثال در بدنه سازنده دوم بوسیله کلیدواژه this به سازنده اول اشاره کرده ایم و مقادیر ورودی را به سازنده اول بوسیله کلیدواژه this نسبت داده ایم.

💡ضمنا با توجه به ورودی هر سازنده، میتوان مشخص کرد که this دقیقا به کدام سازنده اشاره دارد
🔰برای مثال:
class Temp {
public Temp() {
// calls constructor 2
this(5);
System.out.println("The Default constructor");
}

// parameterized constructor 2
public Temp(int x) {
// calls constructor 3
this(5, 15);
System.out.println(x);
}

// parameterized constructor 3
public Temp(int x, int y) {
System.out.println(x * y);
}
}

حتما به خاطر داشته باشید که برای اشاره (this) به سازنده های پیشین حتما باید اینکار در خط اول بعد از ایجاد سازنده جدید صورت گیرد زیرا در غیر این صورت خطای کمپایلر را بدنبال خواهد داشت.


🔅 اتصال سازنده های سوپر کلاس در زیر کلاس
برای اینکار از کلیدواژه super استفاده میشود. ضمنا تمامی قوانین در رابطه با this ، برای super نیز برقرار است:
class SuperClass{
private String firstName;
private String lastName;
public SuperClass(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
}

class Chaining extends SuperClass{
private int age;
public Chaining(String firstName, String lastName,int age) {
super(firstName, lastName);
this.age = age;
}
}

———
#chaining #constructor #this #super
@pieceJava
👍2