“สวัสดี อามีโก้!”

“สวัสดี เอลลี่!”

"วันนี้ฉันอารมณ์ดี ฉันจึงอยากเล่าอะไรที่น่าสนใจให้คุณฟัง ฉันจะเริ่มจากวิธีที่ระบบการพิมพ์ของ Java จัดการกับประเภทดั้งเดิม"

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

รหัสจาวา คำอธิบาย
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b– แสดงถึงการหารจำนวนเต็ม คำตอบคือสอง ส่วนที่เหลือจากการดำเนินการหารจะถูกละเว้น
int a = 13;
int b = 5;
int d = a % b; // d == 3
dจะเก็บส่วนที่ เหลือของจำนวนเต็มหารaด้วย bส่วนที่เหลือคือ 3

"มีความแตกต่างที่น่าสนใจสองสามอย่างที่คุณต้องจำไว้"

"ประการแรก ตัวแปรอ้างอิงไม่ได้ชี้ไปที่ค่าที่มีประเภทเดียวกันเสมอไป"

"ประการที่สอง เมื่อตัวแปรที่มีสองประเภทโต้ตอบกัน จะต้องแปลงเป็นประเภทเดียวกันก่อน"

"แล้วการหารล่ะ? ถ้าเราหาร 1 ด้วย 3 เราจะได้ 0.333(3) จริงไหม?"

"ไม่ นั่นไม่ถูกต้อง เมื่อเรานำจำนวนเต็มสองจำนวนมาหารกัน ผลลัพธ์ที่ได้ก็คือจำนวนเต็มเช่นกัน หากคุณนำ 5 ไปหารด้วย 3 คำตอบจะเป็น 1 โดยมีเศษเหลือเป็น 2 และเศษที่เหลือจะถูกละเว้น"

"ถ้าเราหาร 1 ด้วย 3 เราจะได้ 0 (โดยมีการเตือนความจำ 1 ซึ่งจะถูกละเว้น)"

"แต่ฉันจะทำอย่างไรถ้าฉันต้องการได้ 0.333"

"ใน Java ก่อนทำการหาร วิธีที่ดีที่สุดคือแปลงตัวเลขเป็นประเภททศนิยม (เศษส่วน) โดยการคูณด้วยเลขทศนิยมจำนวนหนึ่ง (1.0)"

รหัสจาวา คำอธิบาย
int a = 1/3;
aจะเป็น 0
double d = 1/3;
 d จะเป็น 0.0
double d = 1.0 / 3;
dจะเป็น 0.333(3)
double d = 1 / 3.0;
dจะเป็น 0.333(3)
int a = 5, b = 7;
double d = (a * 1.0) / b;
dจะเป็น 0.7142857142857143

"เข้าใจแล้ว."