วิธี "เจ้าระเบียบ" หรือ "ถูกต้อง" ในการเข้าถึงคุณสมบัติของวัตถุจากภายในเมธอดอ็อบเจ็กต์ที่ไม่ใช่เมธอด getter / setter คืออะไร?
ฉันรู้ว่าจากภายนอกวัตถุคุณควรใช้ getter / setter แต่จากภายในคุณจะทำ:
Java:
String property = this.property;
PHP:
$property = $this->property;
หรือคุณจะทำ:
Java:
String property = this.getProperty();
PHP:
$property = $this->getProperty();
ยกโทษให้ฉันด้วยถ้า Java ของฉันหลุดไปนิดหน่อยเป็นเวลาหนึ่งปีแล้วที่ฉันตั้งโปรแกรมใน Java ...
แก้ไข:
ดูเหมือนว่าผู้คนจะสมมติว่าฉันกำลังพูดถึงตัวแปร / คุณสมบัติส่วนตัวหรือที่ได้รับการป้องกันเท่านั้น เมื่อฉันเรียนรู้ OO ฉันได้รับการสอนให้ใช้ getters / setters สำหรับทุกคุณสมบัติแม้ว่าจะเป็นแบบสาธารณะก็ตาม (และจริงๆแล้วฉันถูกบอกว่าอย่าทำให้ตัวแปร / คุณสมบัติใด ๆ เป็นสาธารณะ) ดังนั้นฉันอาจจะเริ่มต้นจากข้อสันนิษฐานที่ผิดพลาดตั้งแต่เริ่มต้น ดูเหมือนว่าคนที่ตอบคำถามนี้อาจจะบอกว่าคุณควรมีสมบัติสาธารณะและคนเหล่านั้นไม่จำเป็นต้องได้รับและผู้ตั้งค่าซึ่งขัดกับสิ่งที่ฉันได้รับการสอนและสิ่งที่ฉันกำลังพูดถึงแม้ว่าอาจจะต้องพูดถึง ดี. นั่นอาจเป็นหัวข้อที่ดีสำหรับคำถามอื่นแม้ว่า ...