Data Types in Java — มี class อะไรบ้าง?
หลังจากที่เราย้อนเวลาไปทำความรู้จักกับ Web Application สมัยหนุ่มๆกันมาเต็มที่แล้ว คงจะเหนื่อยๆเพลียๆ งั้นวันนี้เอาแบบเบซิคๆเบาๆ สมองกันหน่อยดีกว่า
ใครที่ยังไม่อ่านประวัติของ Web Application กดตรงนี้เลย
ในบทความนี้เราจะพาไปรู้จักกับ Data Types ใน Java กัน ซึ่งจะประกอบไปด้วย Primitive Data กับ Non — Primitive Data และมาดูกันว่ามี class อะไรอยู่ในข้อมูลทั้ง 2 แบบนี้บ้าง ถ้าพร้อมแล้วไปลุยกันเลยดีกว่าครับพี่น้อง !!!
Primitive Data
ประกอบไปด้วยข้อมูล 8 แบบ
- byte —ขนาด 8 bit เก็บข้อมูลตัวเลขจำนวนเต็มค่าตั้งแต่ -128 ถึง 127
- short — ขนาด 16 bit เก็บข้อมูลตัวเลขจำนวนเต็มค่าตั้งแต่ -32,768 ถึง 32,767
- int — ขนาด 32 bit เก็บข้อมูลตัวเลขจำนวนเต็มค่าตั้งแต่ -2,147,483,648 ถึง 2,147,483,648
- long — ขนาด 64 bit เก็บข้อมูลตัวเลขจำนวนเต็ม ค่าตั้งแต่ -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,808
- float — ขนาด 32 bit เก็บข้อมูลตัวเลขทศนิยม ค่าตั้งแต่ 1.40129846432481707E-45 ถึง 3.40282346638528860E+38
- double — ขนาด 64 bit เก็บข้อมูลตัวเลขทศนิยม ค่าตั้งแต่ 4.94065645841246544E-324 ถึง 1.79769313486231570E+308
- char — ขนาด 16 bits เก็บข้อมูลเป็นตัวอักษร
- boolean — ขนาด 1 bits เก็บข้อมูลค่าตรรกศาสตร์ มีค่าเป็น true, false
1 byte มีค่าเท่ากับ 8 bits
- Object เป็น super class ของทุก class ข้อมูลทุกตัว(ไม่ใช่ primitive data) ที่ instance เป็น sub class ของ Object
- Number เป็น Abtract class เพราะเกิดจากการ extends โดยมี sub class เป็น Byte, Short, Integer, Long, Double, Float
Non — Primitive Data
ข้อมูล 4 แบบ(ที่สำคัญ)
- Class (เป็น data type ที่สำคัญที่สุด)
- Interface
- Enum
- Record
จริงๆ Non-primitive ยังมีข้อมูลอีกนะแต่วันนี้ขอพาไปทำความรู้จักกับ 4 ตัวนี้ก่อน
1.Class ประกอบไปด้วย
- Field, Data, Attribute (แล้วแต่คนจะเรียก)
- Method, Function, Subprogram (แล้วแต่คนจะเรียก)
- มี Super class ได้แค่ 1 class
property บางภาษาเป็น field, attribute แต่ ใน JavaBean กับ Spring Bean กำหนดให้ property เป็น method ซึ่งจะแปลกกว่าภาษาอื่น
ก่อนที่เราจะไปต่อ ขอพาไปทำความรู้จักกับ Super class และ Sub class ก่อน
Superclass เป็น class หลักสามารถระบุได้ด้วย keyword extends ส่วน Sub class เป็น class ย่อยของ Super class เรียกง่ายๆ class แม่กับ class ลูก เป็นการสืบทอดคุณสมบัติ (Inheritance)
โดย สมาชิกทั้งหมดจาก class หลักจะถูกสืบทอดไปยังclass ยกเว้นสมาชิกที่เป็น private และ constructor แต่ถ้า constructor ของ class แม่มีชื่อที่เหมือนกับ class ลูก ก็สามารถเรียกใช้ได้เลย
Superclass หรือ Super type บางภาษาเรียกว่า parent class หรือ base class
2. Interface
- เปรียบเหมือนนโยบายที่ประกาศ แต่ไม่สามารถใส่ขั้นตอนการทำงานลงไปได้
- สร้างขึ้นมาเพื่อให้มีหลาย Super class หรือ multiple super class
- การจะเข้าถึง Super class ได้ต้องใช้ implement กับ extends
Implement : การเรียกใช้งาน
Extends : การขยาย สามารถเพิ่ม field หรือ method ลงใน subclass ได้
3.Enum
- แจกแจงข้อมูลออกมาได้ว่ามีกี่แบบ กี่ประเภท เช่น ทิศมี 4 ทิศ, ไพ่มี 4 ดอก
- ข้อมูลที่แจกแจงเกิน 20 แบบ ควรใช้ class แทน
4.Record
- คล้ายกับ class แต่ว่าเขียนสั้นกว่า
พึ่งมาตอน Java 17 เพื่อให้เขียนโค้ดสั้นๆไม่ต้องใช้คำฟุ่มเฟือย
เป็นยังไงกันบ้าง ได้รู้จักกับ class ต่างใน Data Tpyes แต่นี่เป็นส่วนหนึ่งเท่านั้น ยังมี class อื่นๆอีก วันนี้เอาแค่น้ำจิ้มๆไปก่อน ถือว่าเป็นสาระที่ดีเลยใช่มั้ยล่ะ อย่าลืมติดตามสาระเรื่องต่อๆไปกันด้วยนะ ตามนั้นคือจบ !!!