ตัวสร้าง คือการเริ่มต้นสมาชิกที่ไม่คงที่ของคลาสเฉพาะที่เกี่ยวกับวัตถุ
ตัวสร้างในอินเทอร์เฟซ
- อินเทอร์เฟซ ใน Java ไม่มี คอนสตรัคเตอร์ เนื่องจากสมาชิกข้อมูลทั้งหมดในอินเทอร์เฟซเป็น แบบคงที่สาธารณะสุดท้าย โดยค่าเริ่มต้น ค่าเหล่านี้เป็นค่าคงที่ (กำหนดค่า ณ เวลาที่ประกาศ)
- ไม่มีสมาชิกข้อมูลในอินเทอร์เฟซเพื่อเริ่มต้นผ่านตัวสร้าง
- ในการเรียกใช้เมธอด เราจำเป็นต้องมีอ็อบเจ็กต์ เนื่องจากเมธอดในอินเทอร์เฟซไม่มีเนื้อหา จึงไม่จำเป็นต้องเรียกใช้เมธอดในอินเทอร์เฟซ
- เนื่องจากเราไม่สามารถเรียกเมธอดในอินเทอร์เฟซได้ จึงไม่มีความจำเป็นในการสร้างวัตถุสำหรับอินเทอร์เฟซ และไม่จำเป็นต้องมีตัวสร้างในนั้น
ตัวอย่างที่ 1
interface Addition {
int add(int i, int j);
}
public class Test implements Addition {
public int add(int i, int j) {
int k = i+j;
return k;
}
public static void main(String args[]) {
Test t = new Test();
System.out.println("k value is:" + t.add(10,20));
}
} ผลลัพธ์
k value is:30
ตัวสร้างในคลาส
- วัตถุประสงค์ของ คอนสตรัคเตอร์ ใน คลาส ใช้เพื่อเริ่มต้นฟิลด์แต่ไม่ใช้เพื่อสร้างวัตถุ
- เมื่อเราพยายามสร้างตัวอย่างใหม่ของ abstract superclass คอมไพเลอร์จะแสดงข้อผิดพลาด
- อย่างไรก็ตาม เราสามารถสืบทอดคลาสนามธรรมและใช้ประโยชน์จากคอนสตรัคเตอร์ได้โดยการตั้งค่าตัวแปร
ตัวอย่างที่ 2
abstract class Employee {
public String empName;
abstract double calcSalary();
Employee(String name) {
this.empName = name; // Constructor of abstract class
}
}
class Manager extends Employee {
Manager(String name) {
super(name); // setting the name in the constructor of subclass
}
double calcSalary() {
return 50000;
}
}
public class Test {
public static void main(String args[]) {
Employee e = new Manager("Adithya");
System.out.println("Manager Name is:" + e.empName);
System.out.println("Salary is:" + e.calcSalary());
}
} ผลลัพธ์
Manager Name is:Adithya Salary is:50000.0