ไม่ ตัวสร้างสามารถเป็นแบบสาธารณะ ส่วนตัว ป้องกันหรือค่าเริ่มต้น (ไม่มีตัวแก้ไขการเข้าถึงเลย) การทำบางสิ่งให้เป็นส่วนตัวไม่ได้หมายความว่าไม่มีใครสามารถเข้าถึงได้ มันหมายความว่าไม่มีใครนอกชั้นเรียนสามารถเข้าถึงได้ ตัวสร้างส่วนตัวก็มีประโยชน์เช่นกัน
ตัวสร้างเป็นส่วนตัวใน Java ได้ไหม
มีการใช้คอนสตรัคเตอร์ส่วนตัวใน Java เพื่อจำกัดการสร้างอ็อบเจ็กต์ มันเป็นตัวสร้างอินสแตนซ์พิเศษที่ใช้ในคลาสคงที่สำหรับสมาชิกเท่านั้น หากคอนสตรัคเตอร์ถูกประกาศเป็นแบบส่วนตัว อ็อบเจ็กต์ของมันจะสามารถเข้าถึงได้จากภายในคลาสที่ประกาศเท่านั้น คุณไม่สามารถเข้าถึงวัตถุจากนอกคลาสตัวสร้าง
คอนสตรัคเตอร์เริ่มต้นเป็นแบบส่วนตัวหรือสาธารณะ
ใน C++ ตัวสร้างจะถูกเรียกโดยอัตโนมัติเมื่อวัตถุของคลาสถูกสร้างขึ้น โดยค่าเริ่มต้น ตัวสร้างถูกกำหนดใน ส่วนสาธารณะของคลาส.
ทำไมเราจึงประกาศให้ Constructor เป็นสมาชิกสาธารณะใน Java
ตัวสร้างสาธารณะยังหมายถึง เข้าถึงได้นอกชั้นเรียน ชั้นเรียนอื่นสามารถรับมันด้วยวิธีง่ายๆ แต่ถ้าเราทำให้ตัวสร้างเป็นแบบส่วนตัวจะไม่สามารถเข้าถึงได้ นอกชั้นเรียน นอกจากนี้เรายังทำให้คอนสตรัคเตอร์เป็นคอนสตรัคเตอร์เป็นสาธารณะเพื่อเริ่มต้นคลาสได้ทุกที่ในโปรแกรม
ฉันจะทำให้คอนสตรัคเตอร์เป็นสาธารณะได้อย่างไร
ทำให้คอนสตรัคเตอร์เป็นสาธารณะหากคุณอนุญาตให้โค้ดไคลเอ็นต์ของคุณอยู่นอกแพ็คเกจสร้างอินสแตนซ์อ็อบเจ็กต์ของคุณ ถ้าคุณไม่ต้องการสิ่งนั้น (เพราะวัตถุเป็นแพ็คเกจเฉพาะหรือวัตถุนั้นไม่สามารถสร้างอินสแตนซ์ได้โดยตรง) use package-private.