Java ตัวแปรและประเภทข้อมูล
ตัวแปรในคืออะไร Java?
ตัวแปรใน Java เป็นที่เก็บข้อมูลที่เก็บค่าข้อมูลในระหว่าง Java การทำงานของโปรแกรม ตัวแปรทุกตัวได้รับการกำหนดประเภทข้อมูลซึ่งกำหนดประเภทและปริมาณของค่าที่สามารถเก็บได้ ตัวแปรคือชื่อตำแหน่งหน่วยความจำของข้อมูล ที่ Java ตัวแปรมีสามประเภทหลักๆ ได้แก่ Local, Instance และ Static
ในการใช้ตัวแปรในโปรแกรมคุณต้องดำเนินการ 2 ขั้นตอน
- การประกาศตัวแปร
- การเริ่มต้นตัวแปร
วิธีการประกาศตัวแปรใน Java?
ในการประกาศตัวแปร คุณต้องระบุประเภทข้อมูลและตั้งชื่อตัวแปรให้ไม่ซ้ำกัน
ตัวอย่างของการประกาศที่ถูกต้องอื่นๆ ได้แก่
int a,b,c; float pi; double d; char a;
วิธีการเริ่มต้นตัวแปรใน Java?
ในการเริ่มต้นตัวแปร คุณต้องกำหนดค่าที่ถูกต้องให้กับตัวแปร
ตัวอย่างของการเริ่มต้นที่ถูกต้องอื่นๆ ได้แก่
pi =3.14f; do =20.22d; a=’v’;
คุณสามารถรวมการประกาศตัวแปรและการเริ่มต้นได้
ตัวอย่าง:
int a=2,b=4,c=6; float pi=3.14f; double do=20.22d; char a=’v’;
ประเภทของตัวแปรใน Java
In Javaมีตัวแปรสามประเภท:
- ตัวแปรท้องถิ่น
- ตัวแปรอินสแตนซ์
- ตัวแปรคงที่
1) ตัวแปรท้องถิ่น
ตัวแปรท้องถิ่นเป็นตัวแปรที่ถูกประกาศไว้ภายในเนื้อหาของวิธีการ
2) ตัวแปรอินสแตนซ์
ตัวแปรอินสแตนซ์ถูกกำหนดโดยไม่มีคำสำคัญ static ตัวแปรเหล่านี้จะถูกประกาศไว้ภายนอกเมธอด ตัวสร้าง หรือบล็อกใดๆ ตัวแปรเหล่านี้เฉพาะเจาะจงกับแต่ละอินสแตนซ์ของคลาสและเรียกว่าตัวแปรอินสแตนซ์
3) ตัวแปรคงที่
ตัวแปรคงที่จะถูกกำหนดค่าเริ่มต้นเพียงครั้งเดียว ณ เวลาที่โหลดคลาส ก่อนที่โปรแกรมจะเริ่มทำงาน ตัวแปรเหล่านี้จะถูกแชร์ระหว่างอินสแตนซ์ทั้งหมดของคลาส และจะถูกกำหนดค่าเริ่มต้นก่อนตัวแปรอินสแตนซ์ใดๆ
ประเภทของตัวแปรใน Java ด้วยตัวอย่าง
class Guru99 { static int a = 1; //static variable int data = 99; //instance variable void method() { int b = 90; //local variable } }
ประเภทข้อมูลอยู่ในอะไร Java?
ประเภทข้อมูลใน Java ถูกกำหนดให้เป็นตัวระบุที่จัดสรรขนาดและประเภทของค่าต่าง ๆ ที่สามารถเก็บไว้ในตัวแปรหรือตัวระบุ Java มีชุดข้อมูลที่หลากหลาย ชนิดข้อมูลใน Java สามารถแบ่งออกเป็นสองส่วน:
- ชนิดข้อมูลดั้งเดิม :- ซึ่งได้แก่ จำนวนเต็ม อักขระ บูลีน และทศนิยม
- ประเภทข้อมูลที่ไม่ใช่แบบดั้งเดิม :- ซึ่งประกอบด้วยคลาส อาร์เรย์ และอินเทอร์เฟซ
ชนิดข้อมูลดั้งเดิม
ประเภทข้อมูลดั้งเดิมถูกกำหนดไว้ล่วงหน้าและพร้อมใช้งานภายใน Java ภาษา. ค่าดั้งเดิมจะไม่แชร์สถานะกับค่าดั้งเดิมอื่นๆ
มี 8 ประเภทพื้นฐาน: ไบต์, ชอร์ต, อินท์, ลอง, ชาร์, โฟลต, ดับเบิล และบูลีน
ชนิดข้อมูลจำนวนเต็ม
byte (1 byte) short (2 bytes) int (4 bytes) long (8 bytes)
ประเภทข้อมูลลอยตัว
float (4 bytes) double (8 bytes)
ประเภทข้อมูลที่เป็นข้อความ
char (2 bytes)
ตรรกะ
boolean (1 byte) (true/false)
ประเภทข้อมูล | ค่าเริ่มต้น | ขนาดเริ่มต้น |
---|---|---|
ไบต์ | 0 | 1 ไบต์ |
Short | 0 | ไบต์ 2 |
int | 0 | ไบต์ 4 |
ยาว | 0L | ไบต์ 8 |
ลอย | 0.0f | ไบต์ 4 |
สอง | 0.0d | ไบต์ 8 |
บูล | เท็จ | บิต 1 |
ถัง | '\u0000' | ไบต์ 2 |
จุดที่ต้องจำ:
- ชนิดข้อมูลตัวเลขทั้งหมดมีลายเซ็น (+/-)
- ขนาดของประเภทข้อมูลยังคงเหมือนเดิมในทุกแพลตฟอร์ม (มาตรฐาน)
- ชนิดข้อมูลถ่านใน Java คือ 2 ไบต์เพราะมันใช้ UNICODE ชุดอักขระ โดยอาศัยอำนาจตามนั้น Java รองรับความเป็นสากล UNICODE คือชุดอักขระที่ครอบคลุมสคริปต์และภาษาที่รู้จักทั้งหมดในโลก
Java การแปลงประเภทตัวแปรและการหล่อประเภท
ตัวแปรประเภทหนึ่งสามารถรับค่าประเภทอื่นได้ ที่นี่มี 2 กรณี -
กรณีที่ 1) ตัวแปรที่มีความจุน้อยกว่าจะถูกกำหนดให้กับตัวแปรอื่นที่มีความจุมากกว่า
กระบวนการนี้เป็นไปโดยอัตโนมัติ และไม่ชัดเจนเรียกว่า การแปลง
กรณีที่ 2) ตัวแปรที่มีความจุมากกว่าจะถูกกำหนดให้กับตัวแปรอื่นที่มีความจุน้อยกว่า
ในกรณีดังกล่าว คุณจะต้องระบุให้ชัดเจน ตัวดำเนินการแคสต์ประเภท กระบวนการนี้เรียกว่า ประเภทการหล่อ
ในกรณีที่คุณไม่ได้ระบุตัวดำเนินการแปลงชนิด คอมไพเลอร์จะแสดงข้อผิดพลาด เนื่องจากกฎนี้บังคับใช้โดยคอมไพเลอร์ จึงทำให้โปรแกรมเมอร์ทราบว่าการแปลงที่เขากำลังจะทำอาจทำให้สูญเสียข้อมูลบางส่วน และป้องกันไม่ให้เกิดข้อผิดพลาด การสูญเสียโดยไม่ได้ตั้งใจ
ตัวอย่าง: เพื่อทำความเข้าใจการหล่อแบบ
ขั้นตอน 1) คัดลอกโค้ดต่อไปนี้ลงในโปรแกรมแก้ไข
class Demo { public static void main(String args[]) { byte x; int a = 270; double b = 128.128; System.out.println("int converted to byte"); x = (byte) a; System.out.println("a and x " + a + " " + x); System.out.println("double converted to int"); a = (int) b; System.out.println("b and a " + b + " " + a); System.out.println("\ndouble converted to byte"); x = (byte)b; System.out.println("b and x " + b + " " + x); } }
ขั้นตอน 2) บันทึก คอมไพล์ และรันโค้ด
ผลลัพธ์ที่คาดหวัง:
int converted to byte a and x 270 14 double converted to int b and a 128.128 128 double converted to byte b and x 128.128 -128