ตัวสร้าง คือการเริ่มต้นสมาชิกที่ไม่คงที่ของคลาสเฉพาะที่เกี่ยวกับวัตถุ
ตัวสร้างในอินเทอร์เฟซ
- อินเทอร์เฟซ ใน 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