ฉันมาจากภาษาต่าง ๆ เช่น Python หรือ Javascript (และอื่น ๆ ที่ไม่ค่อยมีวัตถุประสงค์เชิงวัตถุ) และฉันพยายามปรับปรุงความรู้การทำงานของ Java ซึ่งฉันรู้เพียงแค่ผิวเผินเท่านั้น
มันถือว่าเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะผนวกthis
เข้ากับแอ็ตทริบิวต์อินสแตนซ์ปัจจุบันเสมอ? ฉันรู้สึกเป็นธรรมชาติมากขึ้นที่จะเขียน
...
private String foo;
public void printFoo() {
System.out.println(this.foo);
}
...
กว่า
...
private String foo;
public void printFoo() {
System.out.println(foo);
}
...
มันช่วยให้ฉันแยกแยะแอตทริบิวต์ของอินสแตนซ์จากตัวแปรโลคอล
แน่นอนในภาษาอย่าง Javascript มันสมเหตุสมผลมากกว่าที่จะใช้เสมอthis
เนื่องจากมีหนึ่งฟังก์ชันที่สามารถซ้อนฟังก์ชันได้ดังนั้นตัวแปรท้องถิ่นจึงมาจากขอบเขตที่กว้างขึ้น ใน Java เท่าที่ฉันเข้าใจไม่มีการทำรังแบบนี้เป็นไปได้ (ยกเว้นคลาสภายใน) ดังนั้นอาจไม่ใช่ปัญหาใหญ่
ในกรณีใด ๆ this
ฉันชอบที่จะใช้ มันจะรู้สึกแปลกและไม่สำนวนหรือไม่?
this
ฉันคำนำหน้าเช่นตัวแปรทั้งหมดที่มีขีดดังนั้นฉันสามารถบอกความแตกต่างระหว่างตัวแปรท้องถิ่นและอินสแตนซ์โดยไม่ต้องใช้
this.
เมื่ออ้างถึงตัวแปรสมาชิกวิธีการ ฯลฯ ฉันชอบที่ฉันเห็นด้วยกับกฎนี้ ฉันคิดว่ามันจะดีกว่าการตั้งชื่อบางอย่างด้วยการขีดเส้นใต้ที่จุดเริ่มต้น ฉันจะปฏิบัติตามกฎเดียวกันหากฉันถูกเข้ารหัสใน java