ในขณะที่ต้องจัดการกับการคำนวณทางคณิตศาสตร์ใน Java อาจมีบางกรณีที่ผู้พัฒนาจำเป็นต้องใช้ฟังก์ชันเฉพาะกับค่าหลายค่า สำหรับสิ่งนั้น โปรแกรมเมอร์จำเป็นต้องจัดสรรฟังก์ชันแยกต่างหากและดำเนินการตามฟังก์ชันที่ต้องการในนั้น จากนั้นค่าจะถูกส่งผ่านไปยังฟังก์ชันนี้ อัปเดต และส่งคืนตามนั้น ในกรณีดังกล่าว การส่งผ่านการอ้างอิงใน Java จะช่วยได้มากในการผนวกฟังก์ชันการทำงานที่เหมือนกันด้วยค่าเดียวกัน
บล็อกนี้จะอธิบายรายละเอียดเกี่ยวกับวิธีการส่งผ่านการอ้างอิงใน Java
“ Pass by Reference” ใน Java คืออะไร
การส่งโดยการอ้างอิงใน Java หมายความว่าเมื่อมีการเรียกเมธอด อาร์กิวเมนต์เมธอดจะอ้างถึงตัวแปรเดียวกันในหน่วยความจำเป็นผู้เรียกใช้
จะ 'ผ่านการอ้างอิง' ใน Java ได้อย่างไร
หากต้องการผ่านการอ้างอิงใน Java ให้พิจารณาแนวทางต่อไปนี้:
ตัวอย่างที่ 1: ส่งผ่านการอ้างอิงใน Java โดยส่งคืนค่าที่อัปเดต
ในตัวอย่างนี้ จำนวนเต็มเริ่มต้นสามารถส่งผ่านเป็นอาร์กิวเมนต์ของฟังก์ชันซึ่งเพิ่มขึ้นในฟังก์ชันและส่งกลับ:
นานาชาติ หมายเลขที่กำหนด = 2 ;
ระบบ . ออก . พิมพ์ ( 'หมายเลขที่กำหนดคือ: ' + หมายเลขที่กำหนด ) ;
หมายเลขที่กำหนด = เพิ่มขึ้น ( หมายเลขที่กำหนด ) ;
ระบบ . ออก . พิมพ์ ( 'หมายเลขที่อัปเดตคือ: ' + หมายเลขที่กำหนด ) ;
สาธารณะ คงที่ นานาชาติ เพิ่มขึ้น ( นานาชาติ อัพเดทหมายเลข ) {
อัพเดทหมายเลข ++;
กลับ อัพเดทหมายเลข ;
}
ในบรรทัดโค้ดด้านบน:
- ขั้นแรก ให้เริ่มต้นค่าจำนวนเต็มและแสดงผล
- ในขั้นตอนถัดไป ให้เรียกใช้ฟังก์ชัน “ เพิ่มขึ้น () ” โดยส่งจำนวนเต็มเป็นอาร์กิวเมนต์และแสดงจำนวนที่เพิ่มขึ้น
- สุดท้าย กำหนดฟังก์ชั่นชื่อ “ เพิ่มขึ้น () ” มีพารามิเตอร์ที่ระบุซึ่งจำเป็นต้องเพิ่มขึ้น
- ในนิยามของฟังก์ชัน ให้เพิ่มจำนวนที่ส่งผ่านแล้วส่งคืน
เอาต์พุต
ในเอาต์พุตนี้ จะเห็นได้ว่าหมายเลขเริ่มต้นจะถูกส่งผ่าน เพิ่ม และส่งคืน
ตัวอย่างที่ 2: ผ่านการอ้างอิงใน Java โดยการส่งคืนองค์ประกอบอาร์เรย์ที่เพิ่มขึ้น
ตอนนี้เพิ่มรหัสต่อไปนี้:
นานาชาติ กำหนดให้อาร์เรย์ [ ] = { 2 , 3 , 4 } ;ระบบ . ออก . พิมพ์ ( 'หมายเลขที่กำหนดคือ: ' + กำหนดให้อาร์เรย์ [ 1 ] ) ;
เพิ่มขึ้น ( กำหนดให้อาร์เรย์ ) ;
ระบบ . ออก . พิมพ์ ( 'หมายเลขที่อัปเดตคือ: ' + กำหนดให้อาร์เรย์ [ 1 ] ) ;
}
สาธารณะ คงที่ เป็นโมฆะ เพิ่มขึ้น ( นานาชาติ เพิ่มขึ้น [ ] ) {
เพิ่มขึ้น [ 1 ] ++;
}
ที่นี่:
- ประการแรก ประกาศอาร์เรย์ชื่อ “ กำหนดให้อาร์เรย์[ ] ” ที่มีค่าจำนวนเต็ม
- หลังจากนั้น แสดงค่าอาร์เรย์ที่จัดทำดัชนี
- ตอนนี้ ให้ส่งค่าอาร์เรย์เป็นอาร์กิวเมนต์ของฟังก์ชัน และในทำนองเดียวกัน ให้แสดงจำนวนเต็มที่เพิ่มขึ้นบนคอนโซล
- สุดท้ายประกาศฟังก์ชันในทำนองเดียวกัน “ เพิ่มขึ้น () ” มีพารามิเตอร์ชี้ไปที่ค่าอาร์เรย์ที่จะเพิ่มขึ้น
- ในนิยามของฟังก์ชัน เพิ่มค่าที่ส่งผ่านและส่งกลับ
เอาต์พุต
จากผลลัพธ์ข้างต้น สังเกตได้ว่าค่าเริ่มต้นจะถูกส่งผ่านและเพิ่มขึ้นตามนั้น
ตัวอย่างที่ 3: ส่งผ่านการอ้างอิงใน Java โดยการอัปเดตตัวแปรสมาชิกสาธารณะในคลาส
ในการสาธิตนี้ ตัวแปรคลาสสามารถเรียกใช้และเพิ่มค่าได้โดยอ้างอิงถึงคลาสอ็อบเจกต์:
ระดับ คลาสที่กำหนดเอง {สาธารณะ นานาชาติ หมายเลขที่กำหนด ;
สาธารณะ คลาสที่กำหนดเอง ( ) {
หมายเลขที่กำหนด = 2 ;
} }
สาธารณะ ระดับ ตัวอย่าง {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง หาเรื่อง [ ] ) {
วัตถุคลาสที่กำหนดเอง = ใหม่ คลาสที่กำหนดเอง ( ) ;
ระบบ . ออก . พิมพ์ ( 'หมายเลขที่กำหนดคือ: ' + วัตถุ. หมายเลขที่กำหนด ) ;
เพิ่มขึ้น ( วัตถุ ) ;
ระบบ . ออก . พิมพ์ ( 'หมายเลขที่อัปเดตคือ: ' + วัตถุ. หมายเลขที่กำหนด ) ;
}
สาธารณะ คงที่ เป็นโมฆะ เพิ่มขึ้น ( คลาสที่กำหนดเอง obj ) {
คัดค้าน หมายเลขที่กำหนด ++;
}
}
ในบล็อกรหัสด้านบน:
- กำหนดคลาสชื่อ “ คลาสที่กำหนดเอง '. ระบุตัวแปรสาธารณะภายในคลาสด้วย
- ในขั้นตอนถัดไป สร้างตัวสร้างคลาส “ คลาสที่กำหนดเอง () ” และเริ่มต้นจำนวนเต็มที่ระบุภายในนั้น
- หลังจากนั้น สร้าง object ของ class ที่สร้างขึ้นชื่อ “ วัตถุ ” ผ่านทาง “ ใหม่ ” คำหลักและ “ คลาสที่กำหนดเอง () ” ตัวสร้างตามลำดับ
- ตอนนี้แสดงจำนวนเต็มเริ่มต้นโดยอ้างถึงวัตถุคลา
- เรียกใช้ฟังก์ชัน “ เพิ่มขึ้น () ” และส่งวัตถุที่สร้างขึ้นเพื่อใช้ฟังก์ชันของฟังก์ชันกับคลาส
- สุดท้ายประกาศฟังก์ชัน “ เพิ่มขึ้น () ” และเพิ่มจำนวนเต็มเริ่มต้นโดยอ้างถึงวัตถุคลาส
เอาต์พุต
ผลลัพธ์ข้างต้นแสดงว่าความต้องการที่ต้องการได้รับการตอบสนองแล้ว
บทสรุป
หากต้องการส่งผ่านการอ้างอิงใน Java ให้ส่งคืนค่าที่อัปเดต ส่งคืนองค์ประกอบอาร์เรย์ที่เพิ่มขึ้น หรืออัปเดตตัวแปรสาธารณะในคลาส วิธีการเหล่านี้ดำเนินการตามฟังก์ชันที่ต้องการโดยส่งจำนวนเต็ม องค์ประกอบอาร์เรย์ หรือวัตถุคลาสเป็นอาร์กิวเมนต์ของฟังก์ชัน และเพิ่มค่าเริ่มต้นตามลำดับ บล็อกนี้ระบุวิธีการส่งผ่านการอ้างอิงใน Java