الفكرة ببساطة
Constructor يهيّئ الكائن عند استخدام new. في مثال Employee نستقبل الاسم والعمر والراتب، ثم نخزنها في الحقول.
Constructor & Initial Values
Constructor يهيّئ الكائن عند استخدام new. في مثال Employee نستقبل الاسم والعمر والراتب، ثم نخزنها في الحقول.
اسمه يطابق اسم Class تمامًا، ولا يكتب له Return Type، ولا حتى void. لذلك public Employee(String n, int a, double s) هو Constructor، بينما public void Employee() ليست Constructor.
في new Employee("Mohamed", 20, 5000) تسمى القيم Arguments. تنتقل إلى Parameters هي n وa وs، ثم تُسند إلى name وage وsalary.
أكثر من Constructor: يمكن أن يكون للـClass Constructors متعددة بقوائم Parameters مختلفة. يسمى ذلك Constructor Overloading؛ سنقارن Constructor بوسائط وآخر دون وسائط في المرحلة التالية.
public class TestClass {
public static void main(String[] args) {
Employee e1 = new Employee("Mohamed", 20, 5000);
e1.writeOutput();
}
}public class Employee {
private String name;
private int age;
private double salary;
public Employee(String n, int a, double s) {
name = n;
age = a;
salary = s;
}
public String getName() { return name; }
public void setName(String n) { name = n; }
public double getSalary() { return salary; }
public void setSalary(double s) { salary = s; }
public void writeOutput() {
System.out.println("Name: " + name + " Age: " + age + " Salary: " + salary);
}
}إضافة void قبل اسم Constructor تغيّر معناه إلى Method عادية. والـConstructor لا يُستدعى بصيغة e1.Employee(...).
غيّر Arguments الثلاثة في new، ثم افتح Employee.java وتتبّع كل قيمة إلى حقلها.
محاكاة لهذا المثال المحدد، وليست تشغيلًا لكود Java عشوائي.