يتم إنشاء نسخة من الصنف عن طريق استدعاء المُنشئ الخاص به عبر عامل new.
المُنشئ هو نوع خاص من الطُرق هدفه تهيئة نسخة منشأة حديثًا.
تبدو المُنشئات مثل الطُرق العادية، لكن من دون نوع إرجاع، وباسم يطابق اسم الصنف.
class Library {
private int books;
public Library() {
this.books = 10;
}
}
// This will call the constructor
var library = new Library();
مثل الطُرق العادية، يمكن أن تكون للمُنشئات معاملات.
عادةً ما تُخزَّن معاملات المُنشئ في حقول (private) للوصول إليها لاحقًا، أو تُستخدم في حساب لمرة واحدة.
يمكن تمرير الوسائط إلى المُنشئات تمامًا كما تُمرَّر الوسائط إلى الطُرق العادية.
class Building {
private int numberOfStories;
private int totalHeight;
public Building(int numberOfStories, double storyHeight) {
this.numberOfStories = numberOfStories;
this.totalHeight = numberOfStories * storyHeight;
}
}
// Call a constructor with two arguments
var largeBuilding = new Building(55, 6.2)
تحديد المُنشئ اختياري. إذا لم يُحدَّد أي مُنشئ، يُولِّد المترجم مُنشئًا بلا معاملات:
class Elevator {
}
// This will call the (empty) generated constructor
var elevator = new Elevator();
إذا كانت للحقول قيمة ابتدائية مُسنَدة إليها، فسيُنتج المترجم كودًا يكون فيه الإسناد منفَّذًا فعليًا داخل المُنشئ. إذن، تعريفات الأصناف التالية متكافئة (من حيث الوظيفة):
class UsingFieldInitialization {
private int players = 5;
}
class UsingConstructorInitialization {
private int players;
public UsingConstructorInitialization() {
players = 5;
}
}