Autoboxing ใน Java คืออะไร ด้วยตัวอย่าง
เผยแพร่แล้ว: 2023-01-28ในโลกร่วมสมัย Java เป็นตัวเลือกที่มีชื่อเสียงสำหรับการเขียนสคริปต์แอปพลิเคชัน Android นอกจากนี้ยังพบความต้องการอย่างกว้างขวางในสภาพแวดล้อมแมชชีนเลิร์นนิง แอปพลิเคชันคลาวด์ และเทคโนโลยี IOT นักพัฒนาจำเป็นต้องมีความเข้าใจอย่างถ่องแท้เกี่ยวกับแนวโน้มล่าสุดในการเขียนโปรแกรม Java โอกาสระดับมืออาชีพที่ร่ำรวยมีไว้สำหรับนักพัฒนา Java เนื่องจากภาษานี้มีสถานะที่มั่นคงในองค์กร Java ไม่ได้เป็นเพียงภาษาเชิงวัตถุชั้นนำในตลาดแอปพลิเคชันมือถือ Android แต่ยังอยู่ในตลาดแบ็กเอนด์ด้วย
สารบัญ
พื้นฐานของ autoboxing ใน Java:
ในขณะที่เขียนสคริปต์โปรแกรม ชนิดข้อมูลพื้นฐานจะใช้ในภาษาการเขียนโปรแกรมส่วนใหญ่ อย่างไรก็ตาม ในภาษาการเขียนโปรแกรมเชิงวัตถุ เช่น Java ชนิดข้อมูลดั้งเดิมไม่มีผลในบางสถานการณ์ และอาจขาดประสิทธิภาพในขอบเขต เพื่อเอาชนะข้อจำกัดของชนิดข้อมูลดั้งเดิม จึงใช้ตัวห่อหุ้ม ปรากฏการณ์นี้เรียกว่า autoboxing ให้เราพูดคุยเพิ่มเติมเกี่ยวกับ autoboxing ใน Java ในส่วนถัดไป
ตรวจสอบหลักสูตรเทคโนโลยีฟรีของเราเพื่อรับความได้เปรียบเหนือการแข่งขัน
สำรวจหลักสูตรวิศวกรรมซอฟต์แวร์ยอดนิยมของเรา
วิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์จาก LJMU & IIITB | โปรแกรมใบรับรองความปลอดภัยทางไซเบอร์ของ Caltech CTME |
Bootcamp การพัฒนาสแต็คเต็มรูปแบบ | โปรแกรม PG ใน Blockchain |
โปรแกรม Executive PG ในการพัฒนา Full Stack | |
ดูหลักสูตรทั้งหมดของเราด้านล่าง | |
หลักสูตรวิศวกรรมซอฟต์แวร์ |
การทำกล่องอัตโนมัติและการทำกล่องอัตโนมัติ:
การทำกล่องอัตโนมัติคือกระบวนการแปลงค่าดั้งเดิมเป็นวัตถุของคลาสตัวตัดคำ ตัวอย่างเช่น ชนิดข้อมูล int จะถูกแปลงเป็นคลาสจำนวนเต็ม ฟังก์ชัน autoboxing ดำเนินการโดยคอมไพเลอร์ Java หากค่าดั้งเดิมคือ:
- กำหนดให้กับตัวแปรของคลาส wrapper ที่เกี่ยวข้อง
- ส่งผ่านเป็นอาร์กิวเมนต์ไปยังเมธอดที่ใช้อ็อบเจกต์ของคลาส wrapper ที่เกี่ยวข้อง
การทำกล่องอัตโนมัติเป็นการย้อนกลับของฟังก์ชันการทำกล่องอัตโนมัติ การแปลงอ็อบเจ็กต์ประเภท wrapper เป็นค่าดั้งเดิมนั้นเรียกว่า unboxing ให้เราพิจารณาตัวอย่างวัตถุจำนวนเต็มที่ถูกแปลงเป็นประเภทข้อมูล int คอมไพเลอร์ Java ทำการ unboxing เมื่อวัตถุคลาส wrapper คือ:
- กำหนดตัวแปรของประเภทดั้งเดิมตามลำดับ
- ส่งผ่านเป็นอาร์กิวเมนต์ไปยังเมธอดที่ต้องการค่าของประเภทดั้งเดิมที่สอดคล้องกัน
เรียนรู้หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโทเพื่อติดตามความก้าวหน้าในอาชีพของคุณอย่างรวดเร็ว
ทักษะการพัฒนาซอฟต์แวร์ตามความต้องการ
หลักสูตร JavaScript | หลักสูตร Core Java | หลักสูตรโครงสร้างข้อมูล |
หลักสูตร Node.js | หลักสูตร SQL | หลักสูตรการพัฒนาสแต็คเต็มรูปแบบ |
หลักสูตร NFT | หลักสูตร DevOps | หลักสูตรข้อมูลขนาดใหญ่ |
หลักสูตร React.js | หลักสูตรความปลอดภัยทางไซเบอร์ | หลักสูตรคลาวด์คอมพิวติ้ง |
หลักสูตรการออกแบบฐานข้อมูล | หลักสูตรหลาม | หลักสูตร Cryptocurrency |
รายละเอียดการทำกล่องอัตโนมัติ:
คำว่ามวยและมวยอัตโนมัติใช้สลับกันในหลายกรณีเพื่ออธิบายแนวคิดเดียวกัน อย่างไรก็ตาม มีความแตกต่างเล็กน้อยระหว่างสองคำนี้ คำว่า 'มวย' หมายถึงการห่อชนิดข้อมูลดั้งเดิมเพื่อสร้างวัตถุ ให้เราพิจารณาตัวอย่างเพื่อทำความเข้าใจแนวคิดนี้ พิจารณาคำสั่งโค้ด Java ที่เขียนด้านล่าง
int FirstNumber = 1;
ในคำสั่งนี้ ตัวแปร 'FirstNumber' เป็นประเภทข้อมูล int ซึ่งเป็นข้อมูลพื้นฐาน สามารถแปลงเป็นวัตถุได้โดยใช้คำสั่งด้านล่าง
จำนวนเต็ม SecondNumber = จำนวนเต็มใหม่ (2);
ตัวแปร SecondNumber ในคำสั่งด้านบนไม่ใช่ประเภทข้อมูล int ดั้งเดิม แต่เป็นวัตถุจำนวนเต็มแทน กระบวนการแปลงข้อมูลประเภทดั้งเดิมเป็นวัตถุนี้เรียกว่าการชกมวย วิธีที่ง่ายที่สุดในการดำเนินการนี้คือการพัฒนาคลาสที่มีแอตทริบิวต์เดียวของประเภทข้อมูล int ตัวสร้างของค่าประเภท int ถูกกำหนดให้กับแอตทริบิวต์ของคลาส มีการใช้หลายวิธีในการจัดการค่า int คลาส wrapper ใน Java สามารถใช้เพื่อเปิดใช้งานการแปลงชนิดข้อมูลอื่นเป็นวัตถุ
Autoboxing เป็นฟังก์ชันที่ดำเนินการโดยอัตโนมัติโดยคอมไพเลอร์โดยไม่ต้องกล่าวถึงอย่างชัดเจน
MyList.add(Integer.valueOf(i));
นี่คือบรรทัดที่คอมไพเลอร์เพิ่มเข้าไปในโปรแกรมของเรา
ในคำสั่งรหัสข้างต้น ชื่อของคลาส 'จำนวนเต็ม' ถูกระบุก่อนที่จะกล่าวถึงเมธอด valueOf() เนื่องจาก valueOf() เป็นเมธอดแบบสแตติก
อ่านบทความยอดนิยมของเราเกี่ยวกับการพัฒนาซอฟต์แวร์
วิธีการใช้ Data Abstraction ใน Java? | Inner Class ใน Java คืออะไร | ตัวระบุ Java: คำจำกัดความ ไวยากรณ์ และตัวอย่าง |
ทำความเข้าใจเกี่ยวกับ Encapsulation ใน OOPS พร้อมตัวอย่าง | อาร์กิวเมนต์บรรทัดคำสั่งใน C อธิบาย | คุณลักษณะและคุณลักษณะ 10 อันดับแรกของ Cloud Computing ในปี 2022 |
ความหลากหลายใน Java: แนวคิด ประเภท ลักษณะ และตัวอย่าง | แพ็คเกจใน Java & วิธีใช้งาน? | บทช่วยสอน Git สำหรับผู้เริ่มต้น: เรียนรู้ Git ตั้งแต่เริ่มต้น |
Unboxing ใน Java คืออะไร
ตอนนี้เราได้เข้าใจกระบวนการแปลงประเภทข้อมูลดั้งเดิมเป็นวัตถุแล้ว ให้เราพิจารณากระบวนการที่ทำหน้าที่ย้อนกลับของการชกมวย Unboxing ดังที่ได้กล่าวไว้ก่อนหน้านี้ หมายถึงกระบวนการแปลงออบเจกต์ของประเภทคลาส wrapper เป็นประเภทข้อมูลดั้งเดิม
เมื่อคอมไพเลอร์ดำเนินการกระบวนการแกะกล่องโดยอัตโนมัติโดยไม่ได้กล่าวถึงอย่างชัดเจนในโปรแกรม จะเรียกว่าการแกะกล่องอัตโนมัติ ให้เราพิจารณาตัวอย่างที่แสดงด้านล่างเพื่อทำความเข้าใจเกี่ยวกับการแกะกล่องอัตโนมัติ
เพิ่มเติมเกี่ยวกับคลาส Wrapper:
ในตัวอย่างสำหรับการทำกล่องอัตโนมัติ ตัวแปร I เป็นประเภทข้อมูล int และอ็อบเจกต์ Integer เป็นคลาสของ wrapper คลาส wrapper ใน Java พร้อมใช้งานสำหรับประเภทข้อมูลดั้งเดิมทั้งหมด คลาสเหล่านี้ช่วยให้ผู้ใช้สามารถแปลงตัวแปรจากชนิดข้อมูลดั้งเดิมเป็นอ็อบเจกต์ที่สอดคล้องกันของประเภทคลาส wrapper เมธอดคลาสของ wrapper ใช้ในการจัดการกับค่าต่างๆ ประเภทข้อมูลดั้งเดิมและคลาสของ wrapper ที่เกี่ยวข้องสรุปไว้ในตารางด้านล่าง โปรดทราบว่าชื่อของคลาสตัวตัดคำจะขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่
ชนิดข้อมูลดั้งเดิม | คลาส wrapper ที่สอดคล้องกัน |
ไบต์ | ไบต์ |
บูลีน | บูลีน |
ถ่าน | อักขระ |
นานาชาติ | จำนวนเต็ม |
ลอย | ลอย |
สั้น | สั้น |
ยาว | ยาว |
สองเท่า | สองเท่า |
ข้อดีของ Autoboxing และ auto unboxing ใน Java:
- กระบวนการ autoboxing และ unboxing ทำให้โปรแกรมเมอร์สามารถเขียนสคริปต์ที่มีโครงสร้างดีและสามารถอ่านโค้ดได้ง่าย
- กระบวนการนี้ยังช่วยให้ผู้ใช้สามารถสลับระหว่างประเภทข้อมูลดั้งเดิมและวัตถุของคลาส wrapper สลับกันได้ ดังนั้นจึงไม่จำเป็นต้องพิมพ์แบบชัดเจน
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, การพัฒนาซอฟต์แวร์แบบ full-stack โปรดดูโปรแกรม Executive PG Program ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ – ความเชี่ยวชาญในการพัฒนาแบบ Full Stack ซึ่งออกแบบมาสำหรับมืออาชีพในการทำงานและให้การฝึกอบรมอย่างเข้มงวดมากกว่า 500 ชั่วโมง , 9+ โครงการและการมอบหมายงาน, สถานะศิษย์เก่า IIIT-B, โครงการที่ลงมือปฏิบัติจริงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ