Key Difference – Wrapper Class vs Primitive Type ใน Java
Java เป็นภาษาโปรแกรมยอดนิยมที่ใช้ในการพัฒนาแอพพลิเคชั่นต่างๆ ข้อดีอย่างหนึ่งของ Java คือรองรับ Object Oriented Programming (OOP) การใช้ OOP ทำให้โปรแกรมหรือซอฟต์แวร์สามารถสร้างแบบจำลองโดยใช้วัตถุได้ คลาสถูกใช้เป็นพิมพ์เขียวเพื่อสร้างวัตถุ ในการเขียนโปรแกรม มีความจำเป็นต้องเก็บข้อมูล ตำแหน่งหน่วยความจำสำรองเพื่อเก็บข้อมูลเรียกว่าตัวแปร ตัวแปรแต่ละตัวมีประเภทข้อมูลเฉพาะ ภาษา Java มีแปดประเภทดั้งเดิม พวกมันสั้น, ไบต์, int, float, double, char, booleanบางครั้ง จำเป็นต้องแปลงประเภทดั้งเดิมเป็นวัตถุและวัตถุกลับเป็นประเภทดั้งเดิม คลาส wrapper ใช้สำหรับการแปลงนี้ บทความนี้กล่าวถึงความแตกต่างระหว่างคลาส wrapper และประเภทดั้งเดิมใน Java ความแตกต่างที่สำคัญระหว่างคลาส wrapper และประเภทดั้งเดิมใน Java คือคลาส wrapper ใช้เพื่อแปลงประเภทดั้งเดิมเป็นวัตถุและวัตถุกลับเป็นประเภทดั้งเดิม ในขณะที่ประเภทดั้งเดิมเป็นประเภทข้อมูลที่กำหนดไว้ล่วงหน้าโดยภาษาการเขียนโปรแกรม Java
Wrapper Class ใน Java คืออะไร
คลาส Wrapper ใน Java ใช้เพื่อแปลงประเภทข้อมูลดั้งเดิมเป็นวัตถุและวัตถุเป็นประเภทดั้งเดิม แม้แต่ชนิดข้อมูลดั้งเดิมก็ยังใช้สำหรับจัดเก็บชนิดข้อมูลหลัก โครงสร้างข้อมูล เช่น Array Lists และ Vectors จัดเก็บวัตถุ ดังนั้นจึงจำเป็นต้องใช้คลาส wrapper สำหรับการแปลง คลาส wrapper ที่สอดคล้องกันสำหรับประเภทดั้งเดิม char, byte, short และ int คือ Character, Byte, Short และ Integerคลาสของ wrapper ที่สอดคล้องกันสำหรับ long, float, double และ boolean คือ Long, Float, Double และ Boolean
รูปที่ 01: โปรแกรม Java ที่แปลง Wrapper Classes เป็น Primitive Types
ตามโปรแกรมด้านบน inobj เป็นอ็อบเจ็กต์คลาสตัวห่อหุ้มจำนวนเต็ม floatobj เป็นวัตถุคลาสตัวห่อหุ้มโฟลต doubleobj เป็นอ็อบเจ็กต์คลาส Double wrapper ออบเจ็กต์ Integer ถูกแปลงเป็น int ดั้งเดิมโดยใช้ intValue () ในทำนองเดียวกัน วัตถุ Float จะถูกแปลงเป็น float ดั้งเดิมโดยใช้ floatValue() ออบเจ็กต์ Double ถูกแปลงเป็น double ดั้งเดิมโดยใช้ doubleValue () หากโปรแกรมเมอร์เขียนคำสั่งเป็น int i=intobj; คอมไพเลอร์ภายในเขียน intobj. Value() กระบวนการแปลงออบเจ็กต์ของคลาส wrapper เป็นประเภทดั้งเดิมที่สอดคล้องกันโดยอัตโนมัติเรียกว่า unboxingคอลเล็กชันเช่น ArrayLists ใช้คลาส Wrapper เนื่องจากเก็บอ็อบเจ็กต์
Primitive Type ใน Java คืออะไร
ชนิดข้อมูลพื้นฐานเป็นชนิดข้อมูลที่กำหนดไว้ล่วงหน้าโดยภาษาโปรแกรม Java มีแปดประเภทดั้งเดิม คือ byte, short, int, long, float, double, boolean และ char ชนิดข้อมูลไบต์ใช้เพื่อจัดเก็บจำนวนเต็มเสริมสองแบบ 8 บิตที่ลงนามแล้ว ชนิดข้อมูลแบบสั้นใช้เพื่อจัดเก็บจำนวนเต็มเสริมสองคู่ที่มีลายเซ็น 16 บิต ชนิดข้อมูล int ใช้เพื่อจัดเก็บจำนวนเต็มเสริมของสองแบบ 32 บิตที่ลงนามในขณะที่ชนิดข้อมูลแบบยาวใช้เพื่อจัดเก็บจำนวนเต็มเสริมสองแบบ 64 บิต ทศนิยมใช้เพื่อเก็บค่าจุดทศนิยมแบบ 32 บิตที่มีความแม่นยำเพียงจุดเดียว และแบบคู่ใช้สำหรับเก็บค่าจุดทศนิยม 64 บิตที่มีความแม่นยำสองเท่า บูลีนใช้แทนค่าจริงหรือเท็จ char ใช้สำหรับเก็บตัวอักษรตัวเดียว นี่คือแปดประเภทดั้งเดิมใน Java
รูปที่ 02: โปรแกรม Java ที่แปลง Primitive Types เป็น Wrapper Classes
ตามโปรแกรมด้านบน num1 เป็นประเภท int มันถูกแปลงเป็นจำนวนเต็มโดยส่ง num1 ไปยัง Integer.valueOf() float1 สามารถเก็บค่า float ได้ มันถูกแปลงเป็นประเภท Float โดยส่ง float1 เป็น Float.valueOf() ในทำนองเดียวกัน double1 สามารถเก็บค่าสองเท่าได้ มันถูกแปลงเป็นประเภท Double โดยส่ง double1 เป็น Double.valueOf() หากโปรแกรมเมอร์เขียนคำสั่งเป็น Interger inobj=num1; คอมไพเลอร์ภายในเขียน Integer.valueOf(num1); กระบวนการแปลงประเภทดั้งเดิมเป็นออบเจ็กต์คลาส wrapper ที่เกี่ยวข้องโดยอัตโนมัติเรียกว่า autoboxing
ความคล้ายคลึงกันระหว่าง Wrapper Class และ Primitive Type ใน Java คืออะไร
ทั้งคลาส Wrapper และ Primitive Type ใน Java สามารถใช้เก็บข้อมูลในการเขียนโปรแกรม
ความแตกต่างระหว่าง Wrapper Class และ Primitive Type ใน Java คืออะไร
Wrapper Class vs Primitive Type ใน Java |
|
คลาส Wrapper มีกลไกในการแปลงประเภทดั้งเดิมเป็นวัตถุและวัตถุเป็นประเภทดั้งเดิม | A primitive type คือประเภทข้อมูลที่กำหนดไว้ล่วงหน้าโดย Java |
ชั้นเรียนที่เกี่ยวข้อง | |
คลาส Wrapper ใช้สำหรับสร้างวัตถุ ดังนั้นจึงมีคลาสที่สอดคล้องกัน | ประเภทดั้งเดิมไม่ใช่วัตถุดังนั้นจึงไม่อยู่ในชั้นเรียน |
ค่า Null | |
อ็อบเจ็กต์คลาส wrapper อนุญาตค่า Null | A ชนิดข้อมูลดั้งเดิมไม่อนุญาตให้มีค่าว่าง |
หน่วยความจำที่ต้องการ | |
หน่วยความจำที่ต้องการสูงกว่าประเภทดั้งเดิม ดัชนีคลัสเตอร์ไม่ต้องการพื้นที่เพิ่มเติม | หน่วยความจำที่ต้องการต่ำกว่าคลาสแรปเปอร์ |
คอลเลกชัน | |
คลาส Wrapper สามารถใช้กับคอลเลกชั่น เช่น ArrayList เป็นต้น | ประเภทดั้งเดิมไม่ได้ใช้กับคอลเลกชัน |
Summary – Wrapper Class vs Primitive Type ใน Java
ภาษา Java ให้ข้อมูลพื้นฐานแปดประเภท บางครั้งจำเป็นต้องแปลงประเภทดั้งเดิมเป็นวัตถุและต้องแปลงวัตถุกลับเป็นวัตถุดั้งเดิมด้วย คลาส Wrapper สามารถใช้เพื่อทำงานนั้นให้สำเร็จ ความแตกต่างระหว่างคลาส wrapper และประเภทดั้งเดิมใน Java คือคลาส wrapper ใช้เพื่อแปลงประเภทดั้งเดิมเป็นวัตถุและวัตถุกลับไปเป็นประเภทดั้งเดิม ในขณะที่ประเภทดั้งเดิมเป็นประเภทข้อมูลที่กำหนดไว้ล่วงหน้าที่จัดเตรียมโดยภาษาการเขียนโปรแกรม Java