ความแตกต่างที่สำคัญ – จำนวนเต็มเทียบกับโฟลต
Float และ Double คือคลาส wrapper อื่นๆ ที่ใช้สำหรับการแปลงประเภทข้อมูลพื้นฐาน บางครั้งจำเป็นต้องแปลงชนิดข้อมูลดั้งเดิมเป็นวัตถุ และแปลงวัตถุเป็นชนิดข้อมูลดั้งเดิม สำหรับสิ่งนั้น สามารถใช้คลาส Wrapper ได้ ภาษาการเขียนโปรแกรมเช่น Java มีคลาส Wrapper ใช้สำหรับกระบวนการแปลงนี้ คลาส wrapper เป็นคลาสที่ห่อหุ้มประเภท สามารถใช้ประเภทเหล่านั้นเพื่อสร้างอินสแตนซ์ของวัตถุและวิธีการในคลาสอื่นที่ต้องการประเภทเหล่านั้น มีแปดประเภทดั้งเดิมใน Java ได้แก่ int, short, byte, long, boolean, char, float และ doubleคลาส wrapper ที่สอดคล้องกันสำหรับชนิดข้อมูลบูลีนคือบูลีน คลาส wrapper สำหรับชนิดข้อมูลถ่านเป็นอักขระ Short, Byte, Integer, Long, Float และ Double เป็นคลาสของ wrapper อื่นๆ การแปลงชนิดข้อมูลดั้งเดิมเป็นออบเจกต์โดยอัตโนมัติเรียกว่า autoboxing การแปลงวัตถุเป็นประเภทดั้งเดิมโดยอัตโนมัติเรียกว่าการแกะกล่อง บทความนี้กล่าวถึงคลาส wrapper สองคลาสที่เป็น Integer และ Float ความแตกต่างที่สำคัญระหว่าง Integer และ Float คือ Integer เป็นคลาส wrapper ที่เกี่ยวข้องกับประเภทข้อมูล int primitive ในขณะที่ Float เป็นคลาส wrapper ที่เกี่ยวข้องกับประเภทข้อมูล float primitive
จำนวนเต็มคืออะไร
Integer เป็นคลาส wrapper ใน Java ชนิดข้อมูลที่สอดคล้องกันคือ int มันถูกใช้เพื่อแปลงชนิดข้อมูล int เป็นวัตถุหรือเพื่อแปลงวัตถุเป็น int ดูตัวอย่างด้านล่างด้วยคลาสแรปเปอร์จำนวนเต็ม
รูปที่ 01: โปรแกรมพร้อมคลาส Integer Wrapper
ตามโปรแกรมข้างต้น x เป็นตัวแปรประเภท int ประกอบด้วยค่า 10 Integer.valueOf ใช้เพื่อแปลง int เป็นอ็อบเจ็กต์ประเภท Integer ตัวแปร x ถูกส่งไปยังค่าของวิธีการ ในทำนองเดียวกัน int จะถูกแปลงเป็นจำนวนเต็ม
y เป็นวัตถุประเภท Integer ค่า 5 ถูกส่งไปยังตัวสร้าง โดยใช้วิธี intValue วัตถุนั้นจะถูกแปลงเป็นชนิดข้อมูล int ค่าที่แปลงนั้นจะถูกเก็บไว้ในตัวแปร z ที่สามารถเก็บค่า int ได้
รูปที่ 02: ตัวอย่างการออโต้บ็อกซ์และแกะกล่อง1
ตามโปรแกรมข้างต้น ตัวแปร x มี int เมื่อกำหนดให้กับ Integer คอมไพเลอร์จะเขียน Integer โดยอัตโนมัติมูลค่าของ (x) ภายใน นั่นคือการชกมวยอัตโนมัติ 'a' เป็นประเภทจำนวนเต็ม ค่า 6 ถูกส่งไปยังคอนสตรัคเตอร์ เมื่อกำหนดค่าให้กับ b คอมไพเลอร์จะเขียน a.intValue() ภายในโดยอัตโนมัติ กำลังแกะกล่อง
โฟลตคืออะไร
Float เป็นคลาส wrapper ใน Java ชนิดข้อมูลที่สอดคล้องกันคือทศนิยม มันถูกใช้เพื่อแปลงประเภทข้อมูล float เป็นวัตถุหรือเพื่อแปลงวัตถุเป็น float ดูตัวอย่างด้านล่างด้วยคลาส Float wrapper
รูปที่ 03: โปรแกรมกับคลาส Float Wrapper
ตามโปรแกรมด้านบน x เป็นตัวแปรประเภท float มีค่า 20.5f. Float.valueOf ใช้เพื่อแปลง float เป็นวัตถุประเภท Float ตัวแปร x ถูกส่งไปยังเมธอด valueOf ในทำนองเดียวกัน โฟลตจะถูกแปลงเป็นโฟลต
y เป็นวัตถุประเภท Float ค่า 10.5f ถูกส่งไปยังคอนสตรัคเตอร์ โดยใช้วิธี floatValue วัตถุนั้นจะถูกแปลงเป็นประเภทข้อมูล float ค่าที่แปลงนั้นจะถูกเก็บไว้ในตัวแปร z ที่สามารถเก็บค่าทศนิยมได้
รูปที่ 04: ตัวอย่างการออโต้บ็อกซ์และการแกะกล่อง2
ตามโปรแกรมข้างต้น ตัวแปร x มีทศนิยม เมื่อกำหนดให้กับ Float คอมไพเลอร์จะเขียน Float.valueOf(x) ภายในโดยอัตโนมัติ นั่นคือออโต้บ็อกซ์ 'a' เป็นประเภท Float ค่า 6.1f ถูกส่งไปยังคอนสตรัคเตอร์ เมื่อกำหนดค่าให้กับ b คอมไพเลอร์จะเขียน a.floatValue() ภายในโดยอัตโนมัติ กำลังแกะกล่อง
ความคล้ายคลึงกันระหว่างจำนวนเต็มกับจำนวนเต็มคืออะไร
ทั้ง Integer และ Float เป็นคลาส wrapper ใน Java
จำนวนเต็มและจำนวนเต็มต่างกันอย่างไร
จำนวนเต็มเทียบกับโฟลต |
|
จำนวนเต็มเป็นคลาสที่รวมค่าของประเภท int ดั้งเดิมในวัตถุ | Float เป็นคลาสที่รวมค่าของ float ประเภทดั้งเดิมในวัตถุ |
ประเภทข้อมูลดั้งเดิมที่เกี่ยวข้อง | |
Integer เป็นคลาส wrapper ที่เกี่ยวข้องกับประเภทข้อมูล int | Float เป็นคลาส wrapper ที่เกี่ยวข้องกับประเภทข้อมูล float |
สรุป – จำนวนเต็มเทียบกับโฟลต
Java มีแปดประเภทดั้งเดิมที่สำคัญ ได้แก่ int, short, byte, long, boolean, char, float และ double บางครั้งจำเป็นต้องแปลงชนิดข้อมูลดั้งเดิมเป็นวัตถุและวัตถุเป็นชนิดดั้งเดิมคลาส Wrapper ใช้สำหรับสิ่งนั้น ประเภทดั้งเดิมแต่ละประเภทมีคลาส wrapper ที่สอดคล้องกัน คลาสของ wrapper ได้แก่ Integer, Short, Byte, Long, Boolean, Char, Float และ Double บทความนี้กล่าวถึงความแตกต่างระหว่าง Integer และ Float ความแตกต่างระหว่าง Integer และ Float คือ Integer เป็นคลาส wrapper ที่เกี่ยวข้องกับประเภทข้อมูล int primitive ในขณะที่ Float เป็นคลาส wrapper ที่เกี่ยวข้องกับประเภทข้อมูล float primitive