ส่วนใหญ่เราใช้ชนิดข้อมูลดั้งเดิมในขณะที่เขียนโปรแกรมในภาษาใด ๆ แต่มีสถานการณ์ที่ประเภทข้อมูลดั้งเดิมขาดในขอบเขตของ และ เป็นหนึ่งในนั้น เพื่อเอาชนะข้อบกพร่องในประเภทข้อมูลดั้งเดิมเราใช้ ห่อ . ขั้นตอนนี้เรียกว่า Autoboxing เราจะพูดถึงรายละเอียด Autoboxing ใน Java ผ่าน docket ด้านล่าง:
เอาล่ะ.
บทเรียนเซิร์ฟเวอร์ sql สำหรับผู้เริ่มต้น
Boxing และ Autoboxing ใน Java คืออะไร?
การชกมวยและ Autoboxing มักใช้เพื่ออ้างถึงแนวคิดเดียวกัน แต่ในความเป็นจริงพวกเขาไม่เหมือนกันอย่างแน่นอน ก่อนอื่นเรามาพูดถึงแนวคิดของการชกมวย มวยคืออะไร? ดูเหมือนว่าเรากำลังเก็บบางอย่างไว้ในกล่องใช่ไหม? ใช่เมื่อเราบอกว่าเรากำลังชกมวยหรือห่อข้อมูลประเภทดั้งเดิมนั่นหมายความว่าเรากำลังรวมมันเพื่อสร้างวัตถุ ยังงง? ลองดูตัวอย่าง
int FirstNumber = 1
ตัวแปร 'FirstNumber' เป็นประเภท int ซึ่งเป็น . ตอนนี้จะเกิดอะไรขึ้นถ้าฉันต้องการแปลงตัวแปร ‘FirstNumber’ เป็นออบเจ็กต์ Java จัดเตรียมวิธีการทำเช่นนั้น
จำนวนเต็ม SecondNumber = จำนวนเต็มใหม่ (2)
สังเกตว่า 'SecondNumber' ไม่ใช่ประเภท int แต่เป็นวัตถุประเภท Integer กระบวนการแปลงชนิดข้อมูลดั้งเดิมเป็นวัตถุนี้เรียกว่ามวย คุณอาจถามว่าเป็นไปได้อย่างไร? ลองคิดดูว่าวิธีใดเป็นวิธีที่ง่ายที่สุดในการทำงานนี้ให้สำเร็จ เราสามารถสร้างไฟล์ ชั้นเรียน ประกอบด้วยแอตทริบิวต์ประเภท int ตัวเดียวตัวสร้างซึ่งรับค่าประเภท int และกำหนดให้กับแอตทริบิวต์คลาสของเราและวิธีการบางอย่างในการจัดการกับค่า int นี้ หากต้องการทราบข้อมูลเพิ่มเติมโปรดอ้างอิงสิ่งนี้ เอกสาร .
เราได้เห็นว่าประเภท int สามารถแปลงเป็น Java ได้อย่างไร มีวิธีการแปลงชนิดข้อมูลดั้งเดิมอื่น ๆ เป็นวัตถุหรือไม่? ใช่ Java มีตามลำดับ คลาสกระดาษห่อ สำหรับประเภทข้อมูลดั้งเดิมที่แตกต่างกัน เราจะตรวจสอบพวกเขาในส่วนถัดไปของโพสต์นี้
Autoboxing
ถึงตอนนี้เรารู้แล้วว่ามวยคืออะไร ตอนนี้เรามาทำความเข้าใจว่า Autoboxing คืออะไร เมื่อคอมไพเลอร์ทำขั้นตอนการชกมวยโดยไม่ได้กล่าวถึงอย่างชัดเจนจะเรียกว่า autoboxing
มาทำความเข้าใจกับตัวอย่าง:
import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () สำหรับ (int i = 0 i<10 i++) Mylist.add(i) } }
ดังที่เราได้กล่าวไว้ก่อนหน้านี้ ยอมรับเฉพาะออบเจ็กต์และประเภทข้อมูลดั้งเดิมไม่ทำงาน ในโปรแกรมข้างต้นเราไม่ได้แปลงวัตถุประเภทจำนวนเต็มเป็นประเภทจำนวนเต็ม แต่โปรแกรมจะดำเนินการโดยไม่มีข้อผิดพลาดใด ๆ อย่างไร? คำตอบสำหรับคำถามนี้คือคอมไพเลอร์ทำขั้นตอนการชกมวยโดยอัตโนมัติก่อนที่จะเพิ่มค่าให้กับ 'Mylist' จึงใช้ชื่อว่า Autoboxing
Mylist.add (Integer.valueOf (i))
บรรทัดโค้ดด้านบนถูกเพิ่มในโปรแกรมของเราโดยคอมไพเลอร์
บันทึก- ในบรรทัดด้านบนของชื่อคลาสโค้ด‘Integer ’ถูกกล่าวถึงก่อนเมธอด valueOf () เนื่องจาก valueOf () เป็นวิธีการคงที่ สำหรับตัวอย่างเพิ่มเติมโปรดดูที่ไฟล์ เอกสาร .
Unboxing และ Autounboxing
เราเห็นวิธีการ ของชนิดข้อมูลดั้งเดิมจะถูกแปลงเป็นวัตถุ แต่นี่เป็นเพียงครึ่งเดียวของเรื่อง อีกครึ่งหนึ่งของเรื่องราวคือการแปลงอ็อบเจ็กต์ของคลาส wrapper ประเภทเป็นชนิดข้อมูลดั้งเดิมเรียกว่า แกะกล่อง .
ตัวอย่างเช่น-
จำนวนเต็ม FirstNumber = จำนวนเต็มใหม่ (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)
เอาต์พุต - 1
กล่องอัตโนมัติ - เมื่อกระบวนการแกะกล่องโดยคอมไพเลอร์โดยไม่มีการกล่าวถึงอย่างชัดเจนเรียกว่า Autounboxing
ตัวอย่างเช่น-
จำนวนเต็ม = จำนวนเต็มใหม่ (20) int num = Number
โค้ดด้านบนเป็นตัวอย่างของ Autounboxing ในส่วนถัดไปเราจะเรียนรู้เกี่ยวกับคลาส Wrapper
คลาส Wrapper
เราแปลงใน type variable intl Integer type object คลาสจำนวนเต็มนี้เป็นคลาส Wrapper ใน Java คลาส wrapper จะพร้อมใช้งานสำหรับแต่ละคลาส . คลาส Wrapper เหล่านี้ช่วยเราในการแปลงตัวแปรจากประเภทดั้งเดิมไปเป็นอ็อบเจ็กต์ประเภทคลาส Wrapper ตามลำดับ วิธีการของคลาส wrapper มีประโยชน์ในการจัดการกับค่า
ตารางด้านล่างบอกเราเกี่ยวกับประเภทข้อมูลดั้งเดิมและคลาส Wrapper ตามลำดับ
ประเภทดั้งเดิม | คลาส Wrapper |
บูลีน | บูลีน |
บาย วิธีการสิ้นสุดโปรแกรมใน java | ไบต์ |
ถ่าน | ตัวละคร |
ลอย | ลอย |
int | จำนวนเต็ม วัตถุที่เปลี่ยนแปลงไม่ได้และไม่เปลี่ยนรูปใน java |
ยาว | ยาว |
สั้น | สั้น |
สองเท่า | สองเท่า |
สังเกตการใช้อักษรตัวพิมพ์ใหญ่ในคลาส Wrapper
ดังนั้นเราจึงมาถึงตอนท้ายของบทความเรื่อง 'Autoboxing in Java' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้“ autoboxing in Java” แล้วเราจะติดต่อกลับโดยเร็วที่สุด