"และตอนนี้สำหรับส่วนที่น่าสนใจที่สุด ฉันจะบอกคุณเกี่ยวกับการแปลงประเภท ตัวแปรไม่สามารถเปลี่ยนประเภทได้ แต่มีที่ที่คุณสามารถแปลงประเภทได้ สถานที่นั้นคือการดำเนินการกำหนด "

"คุณสามารถกำหนดตัวแปรประเภทต่างๆ ให้กันและกันได้ ในการทำเช่นนั้น ค่าของตัวแปรหนึ่ง (ของประเภทใดประเภทหนึ่ง) จะถูกแปลงเป็นค่าของอีกประเภทหนึ่ง และกำหนดให้กับตัวแปรอีกประเภทหนึ่ง "

"เราสามารถชี้ให้เห็นถึงการแปลงได้ 2 ประเภท ได้แก่ การขยายการแปลงแบบดั้งเดิมและการจำกัดการแปลงแบบดั้งเดิมให้แคบลง การทำให้กว้างขึ้นนั้นเหมือนกับการย้ายของจากตะกร้าใบเล็กไปยังตะกร้าใบใหญ่ ขั้นตอนนี้ไม่มีมาตรฐานและไม่เจ็บปวด การจำกัดให้แคบลงก็เหมือนกับการนำของออกจากตะกร้าใบใหญ่ แล้วใส่อันที่เล็กลง เมื่อคุณทำเช่นนี้ คุณอาจมีที่ว่างไม่พอ คุณอาจต้องโยนบางอย่างออกไป "

"ต่อไปนี้คือประเภทที่จัดเรียงตามขนาด 'ตะกร้า':"

การแปลงประเภท

"เพียงไม่กี่ความคิดเห็น:

1. ตะกร้าของ ถ่านมีขนาดเท่ากับของสั้น แต่คุณไม่สามารถเคลื่อนย้ายสิ่งของได้อย่างอิสระจากที่หนึ่งไปยังอีกที่หนึ่ง เมื่อคุณย้ายค่าจากshortเป็นcharค่าที่น้อยกว่า 0 จะสูญหายไปเสมอ เมื่อคุณย้ายค่าจากถ่านไปสั้น ค่าที่มากกว่า 32,000 จะหายไป

2. เมื่อคุณแปลงจำนวนเต็มเป็นตัวเลขเศษส่วน ตัวเลขที่มีนัยสำคัญน้อยที่สุดของตัวเลขอาจถูกโยนทิ้งไป อย่างไรก็ตาม สิ่งนี้ยอมรับได้ เนื่องจากจุดประสงค์ของเลขเศษส่วนคือการเก็บค่าโดยประมาณ"

" เมื่อทำการแปลงให้แคบลง เราต้องบอกคอมไพเลอร์อย่างชัดเจนว่าเราไม่ได้ทำข้อผิดพลาด: เรากำลังละทิ้งส่วนหนึ่งของตัวเลขโดยตั้งใจ เราใช้ตัวดำเนินการ cast ( เช่นชื่อประเภทในวงเล็บ ) เพื่อดำเนินการนี้"

"นี่คือวิธีที่คุณควรกำหนดตัวแปรประเภทต่างๆ:"

รหัสจาวา คำอธิบาย
byte a = 115;
int b = a;
ขยายการแปลงดั้งเดิม ทุกอย่างยอดเยี่ยม
int c = 10000;
byte d = (byte) c;
การแปลงดั้งเดิมให้แคบลง เราต้องระบุอย่างชัดเจนว่าควรละทิ้งไบต์พิเศษ
int c = 10;
byte d = (byte) c;
การแปลงดั้งเดิมให้แคบลง เราต้องระบุอย่างชัดเจนว่าควรละทิ้งไบต์ที่เกินมา แม้ว่าจะมีค่าเท่ากับ 0 ก็ตาม
float f = 10000;
long l = (long) (f * f);
float f2 = l;
long l2 = (long) f2;
เมื่อกำหนดให้กับโฟลต การแปลงดั้งเดิมที่กว้างขึ้นจะเกิดขึ้น เมื่อกำหนดทศนิยมให้กับ long การแปลงดั้งเดิมที่แคบลงจะเกิดขึ้น จำเป็นต้องมีตัวดำเนินการแคสต์
double d = 1;
float f = (float) d;
long l = (long) f;
int i = (int) l;
short s = (short) i;
byte b = (byte) s;
จำกัดการแปลงในการดำเนินการมอบหมายทั้งหมด ยกเว้นบรรทัดแรก การแปลงเหล่านี้ต้องการให้เราระบุประเภทการแปลงอย่างชัดเจน
3
งาน
Java Syntax,  ระดับบทเรียน
ล็อค
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.

" ต้องใส่ ตัวดำเนินการคาสต์ก่อนตัวเลข/ตัวแปร เมื่อใดก็ตามที่ส่วนหนึ่งของตัวเลขจะถูกละทิ้ง หรือเมื่อเกิดการแปลงแบบดั้งเดิมที่แคบลง ตัวดำเนินการคาสต์จะมีผลเฉพาะกับตัวเลข/ตัวแปรที่ตามมาโดยตรงเท่านั้น"

รหัสจาวา คำอธิบาย
float f = 10000;
long l = (long) f * f;
มีเพียงหนึ่งในสองตัวแปรเท่านั้นที่ส่งไปยัง long: การคูณของ long และ a float เท่ากับ float
float f = 10000;
long l = (long) (f * f);
การแสดงออกทั้งหมดมีความยาว

"ฉันเห็น."