ฉันจะคัดลอกวัตถุใน Java ได้อย่างไร

Chan Ca Khad Lxk Watthu Ni Java Di Xyangri



ใน Java การคัดลอกอ็อบเจกต์จะมีผลเมื่อมีความจำเป็นต้องใช้ฟังก์ชันที่นำไปใช้แล้วในโค้ด แทนที่จะนำไปใช้ใหม่ตั้งแต่ต้น นอกจากนี้ยังช่วยในการอัปเดตข้อมูลตามบันทึกที่มีอยู่ ด้วยวิธีนี้จะช่วยลดความซับซ้อนของรหัสและการใช้ทรัพยากรอย่างมีประสิทธิภาพ

บทความนี้จะสาธิตวิธีการคัดลอกวัตถุใน Java

ฉันจะคัดลอกวัตถุใน Java ได้อย่างไร

สามารถคัดลอกวัตถุใน Java โดยใช้วิธีการต่อไปนี้:







เข้าถึงชั้นเรียนทั้งหมดภายใน “ java.util ” แพ็คเกจก่อนที่จะย้ายไปที่ตัวอย่าง:



นำเข้า ชวา ใช้ประโยชน์ . *;

แนวทางที่ 1: การคัดลอกวัตถุใน Java โดยใช้ “Copy Constructor”

ตัวสร้างการคัดลอก ” สร้าง/กำหนดวัตถุโดยอ้างถึงวัตถุคลาสเดียวกันที่สร้างไว้ก่อนหน้านี้



ตัวอย่าง
ตัวอย่างต่อไปนี้ใช้ 'ตัวสร้างการคัดลอก' เพื่อคัดลอกวัตถุ:





สาธารณะ ระดับ คัดลอกวัตถุ {
นานาชาติ รหัส ;
สตริง เมือง ;
คัดลอกวัตถุ ( นานาชาติ รหัส , สตริง เมือง ) {
นี้ . รหัส = รหัส ;
นี้ . เมือง = เมือง ; }
คัดลอกวัตถุ ( วัตถุ CopyObject ) {
นี้ . รหัส = วัตถุ. รหัส ;
นี้ . เมือง = วัตถุ. เมือง ; }
สาธารณะ เป็นโมฆะ แสดง ( ) {
ระบบ. ออก . พิมพ์ ( 'รหัส ->' + นี้ . รหัส ) ;
ระบบ. ออก . พิมพ์ ( 'เมือง ->' + นี้ . เมือง ) ; }
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
อินพุตสแกนเนอร์ = ใหม่ สแกนเนอร์ ( ระบบ. ใน ) ;
ระบบ. ออก . พิมพ์ ( 'ป้อนรหัส: ' ) ;
นานาชาติ รหัส = ป้อนข้อมูล. ถัดไป ( ) ;
ระบบ. ออก . พิมพ์ ( 'เข้าเมือง:' ) ;
สตริง เมือง = ป้อนข้อมูล. ต่อไป ( ) ;
CopyObject วัตถุ1 = ใหม่ คัดลอกวัตถุ ( รหัส , เมือง ) ;
CopyObject วัตถุ2 = ใหม่ คัดลอกวัตถุ ( วัตถุ1 ) ;
ระบบ. ออก . พิมพ์ ( 'วัตถุเริ่มต้น ->' ) ;
วัตถุ1. แสดง ( ) ;
ระบบ. ออก . พิมพ์ ( 'คัดลอกวัตถุ ->' ) ;
วัตถุ 2 แสดง ( ) ;
ป้อนข้อมูล. ปิด ( ) ;
} }

ในข้อมูลโค้ดด้านบน:

  • สร้างคลาสชื่อ “ คัดลอกวัตถุ '.
  • ระบุตัวแปรสมาชิกที่ระบุของชั้นเรียน
  • หลังจากนั้น สร้างตัวสร้างคลาสพารามิเตอร์ที่จัดสรรค่าที่ส่งผ่านไปยังตัวแปรที่ระบุผ่าน “ นี้ '.
  • ตอนนี้สร้าง ' ตัวสร้างการคัดลอก ” ที่รับออบเจกต์ประเภทคลาสที่สร้างไว้แล้วเป็นพารามิเตอร์ซึ่งจะถูกส่งผ่านเป็นอาร์กิวเมนต์ในภายหลัง
  • นอกจากนี้ ให้กำหนดฟังก์ชัน “ แสดง() ” ที่แสดงค่าวัตถุที่ส่งผ่าน
  • ใน ' หลัก() ” วิธีการ สร้างวัตถุ “สแกนเนอร์” เพื่อให้ผู้ใช้ป้อนข้อมูลผ่านทาง “ ระบบใน ” พารามิเตอร์
  • นอกจากนี้ยังเชื่อมโยง ' ถัดไปInt() ' และ ' ต่อไป() ” วิธีการรับอินพุตของผู้ใช้จำนวนเต็มและสตริงตามลำดับ
  • สร้างคลาสอ็อบเจกต์ผ่านทาง “ ใหม่ ” คำหลักและ “ CopyObject() ” ตัวสร้างที่มีค่าอินพุตของผู้ใช้เป็นอาร์กิวเมนต์
  • สร้างวัตถุคัดลอกที่มีวัตถุที่สร้างขึ้นเป็นอาร์กิวเมนต์เพื่อส่งคืนเนื้อหาที่คัดลอกโดยอ้างถึงตัวสร้างการคัดลอกคลาส
  • สุดท้าย เรียก “ แสดง() ” เพื่อแสดงค่าที่ผู้ใช้ป้อนและปิด “Scanner”

เอาต์พุต



ในเอาต์พุตนี้ อาจบอกเป็นนัยได้ว่าวัตถุสำเนาถูกสร้างและแสดงตามนั้น

แนวทางที่ 2: การคัดลอกวัตถุใน Java ผ่านวิธีการ “clone()”

โคลน () ” วิธีการของ “ java.lang.Object คลาสใช้วัตถุเป็นพารามิเตอร์สร้างและให้สำเนาของมัน วิธีนี้สามารถนำไปใช้ในการคัดลอกออบเจกต์โดยอ้างถึงออบเจกต์ที่สร้างไว้แล้ว (ซึ่งจำเป็นต้องคัดลอก) และเมธอด “clone()”

ไวยากรณ์

วัตถุ. โคลน ( )

วิธีนี้ให้สำเนาของวัตถุและโยน “ โคลนไม่รองรับข้อยกเว้น ” หากคลาสของออบเจกต์ไม่ได้ใช้งาน/ใช้อินเทอร์เฟซ “Cloneable”

ตัวอย่าง
ผ่านบรรทัดด้านล่างของรหัส:

สาธารณะ ระดับ คัดลอกวัตถุ ดำเนินการ โคลนได้ {
นานาชาติ รหัส ;
สตริง เมือง ;
คัดลอกวัตถุ ( นานาชาติ รหัส , สตริง เมือง ) {
นี้ . รหัส = รหัส ;
นี้ . เมือง = เมือง ;
}
สาธารณะ เป็นโมฆะ แสดง ( ) {
ระบบ. ออก . พิมพ์ ( 'รหัส ->' + นี้ . รหัส ) ;
ระบบ. ออก . พิมพ์ ( 'เมือง ->' + นี้ . เมือง ) ;
}
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) ขว้าง โคลนไม่รองรับข้อยกเว้น {
อินพุตสแกนเนอร์ = ใหม่ สแกนเนอร์ ( ระบบ. ใน ) ;
ระบบ. ออก . พิมพ์ ( 'ป้อนรหัส: ' ) ;
นานาชาติ รหัส = ป้อนข้อมูล. ถัดไป ( ) ;
ระบบ. ออก . พิมพ์ ( 'เข้าเมือง:' ) ;
สตริง เมือง = ป้อนข้อมูล. ต่อไป ( ) ;
CopyObject วัตถุ1 = ใหม่ คัดลอกวัตถุ ( รหัส , เมือง ) ;
ระบบ. ออก . พิมพ์ ( 'วัตถุเริ่มต้น ->' ) ;
วัตถุ1. แสดง ( ) ;
ระบบ. ออก . พิมพ์ ( 'คัดลอกวัตถุ ->' ) ;
CopyObject วัตถุ2 = ( คัดลอกวัตถุ ) วัตถุ1. โคลน ( ) ;
วัตถุ 2 แสดง ( ) ;
ป้อนข้อมูล. ปิด ( ) ;
} }

ตามบล็อกโค้ดด้านบน ให้ทำตามขั้นตอนด้านล่าง:

  • ระลึกถึงวิธีการที่กล่าวถึงสำหรับการกำหนดคลาส การระบุตัวแปรสมาชิก การสร้างตัวสร้างคลาสแบบกำหนดพารามิเตอร์ (การจัดสรรค่าที่ส่งผ่าน) และการกำหนดฟังก์ชันสำหรับการแสดงค่าตามลำดับ
  • ตอนนี้ใน “ หลัก() ” ในทำนองเดียวกัน ผู้ใช้ป้อนค่าและส่งค่าเหล่านี้ไปยังวัตถุคลาสที่สร้างขึ้นและแสดงผ่านฟังก์ชันที่เกี่ยวข้อง
  • หลังจากนั้น “ โคลน () ” วิธีการมีผลบังคับใช้ที่เกี่ยวข้องกับวัตถุที่สร้างขึ้นแล้วเพื่อสร้างวัตถุสำเนา
  • สุดท้าย แสดงเนื้อหาของวัตถุที่คัดลอกผ่านฟังก์ชันที่กล่าวถึง

เอาต์พุต

ในผลลัพธ์นี้ สังเกตได้ว่าค่าอินพุตของผู้ใช้จะถูกส่งกลับสองครั้งด้วยผลลัพธ์ที่เหมือนกัน เพื่อให้แน่ใจว่าคลาสอ็อบเจกต์ถูกคัดลอกอย่างเหมาะสม

บทสรุป

สามารถคัดลอกวัตถุใน Java โดยใช้ ' ตัวสร้างการคัดลอก ” หรือ “ โคลน () ' วิธี. วิธีเดิมคัดลอกวัตถุโดยการใช้วัตถุที่สร้างไว้แล้วเป็นอาร์กิวเมนต์ตัวสร้างการคัดลอก วิธีหลังเกี่ยวข้องโดยตรงกับวัตถุคลาสที่สร้างขึ้น บทความนี้แสดงวิธีการคัดลอกวัตถุใน Java