"สวัสดี Amigo ฉันเองค่ะ Ellie ขอโทษที่พูดซ้ำแล้วซ้ำเล่า แต่มันเป็นธรรมเนียมของโลกในศตวรรษที่ 31 ฉันต้องการให้รายละเอียดเพิ่มเติมเกี่ยวกับตัวแปรอ้างอิงและการส่งตัวแปรอ้างอิงไปยังฟังก์ชัน ( วิธีการ)"
"ฉันพร้อมแล้ว."
"เยี่ยมมาก ฟังให้ดี ตัวแปรอ้างอิงคือตัวแปรที่ไม่ใช่ตัวแปรดั้งเดิม ตัวแปรดังกล่าวมีการอ้างอิงวัตถุเท่านั้น (การอ้างอิงถึงวัตถุ)"
"ตัวแปรดั้งเดิมประกอบด้วยค่า ในขณะที่ตัวแปรอ้างอิงจัดเก็บการอ้างอิงไปยังอ็อบเจกต์หรือ null ฉันถูกไหม"
"อย่างแน่นอน."
"อ้างอิงอะไร"
"ความสัมพันธ์ระหว่างวัตถุกับวัตถุอ้างอิงก็เหมือนกับความสัมพันธ์ระหว่างบุคคลกับหมายเลขโทรศัพท์ของเธอ หมายเลขโทรศัพท์ไม่ใช่บุคคล แต่สามารถใช้โทรหาบุคคลนั้น ขอข้อมูลบางอย่าง จัดการเธอ หรือ ให้คำสั่ง การอ้างอิงยังใช้ในการทำงานกับวัตถุ วัตถุทั้งหมดโต้ตอบกับอีกคนหนึ่งโดยใช้การอ้างอิง "
“เหมือนกับว่าพวกเขาคุยกันทางโทรศัพท์?”
"ถูกต้องเมื่อมีการกำหนดตัวแปรดั้งเดิม ค่าจะถูกคัดลอก หากมีการกำหนดการอ้างอิง เฉพาะที่อยู่ของวัตถุ (หมายเลขโทรศัพท์) เท่านั้นที่จะถูกคัดลอก ตัววัตถุเองจะไม่ถูกคัดลอก "
"โอเคเข้าใจแล้ว."
"การอ้างอิงให้ประโยชน์อีกอย่างแก่คุณ: คุณสามารถส่งการอ้างอิงวัตถุไปยังเมธอดใดก็ได้ และวิธีการนั้นจะสามารถใช้การอ้างอิงเพื่อแก้ไข (เปลี่ยนแปลง) ออบเจกต์ได้โดยการเรียกเมธอดของมันและเข้าถึงข้อมูลภายในอ็อบเจกต์"
ตัวอย่างที่ 1
ค่า m และ n ไม่เปลี่ยนแปลงที่นี่
|
และนี่คือเหตุผล
รหัสนี้คล้ายกับรหัสทางด้านซ้าย
|
"เฉพาะค่า 5 (m) และ 6 (n) ตามลำดับเท่านั้นที่ถูกกำหนดให้กับตัวแปรกและข;กและขไม่รู้อะไรเกี่ยวกับ (และไม่มีอิทธิพลในทางใดทางหนึ่ง) m และ n"
“บอกตามตรงว่าตอนนี้ฉันเข้าใจแล้วว่าฉันไม่เข้าใจอะไรเลย คุณช่วยยกตัวอย่างให้ฉันดูอีกหน่อยได้ไหม”
"ด้วยการอ้างอิงวัตถุ เราสามารถทำสิ่งต่อไปนี้:"
ตัวอย่างที่ 2
ข้อมูลของวัตถุเปลี่ยนแปลงในรหัสนี้
|
และนี่คือเหตุผล
รหัสนี้คล้ายกับรหัสทางด้านซ้าย
|
"การอ้างอิงถึง jen และ beth ตามลำดับ ถูกกำหนดให้กับตัวแปร a และ b; a และ b เปลี่ยนค่าภายในวัตถุ jen และ beth"
"และคุณสามารถประกาศคลาสภายในคลาสอื่นได้ใช่ไหม เจ๋ง!"
“แต่ฉันยังไม่เข้าใจอย่างอื่นดีนัก”
"ทั้งหมดในเวลาที่กำหนด"
GO TO FULL VERSION