Java#14 มี Class แล้วสร้าง Object กันเลย

หลังจากที่เราสร้างคลาส Employee เสร็จไปแล้ว ตอนนี้ เราจะมาสร้างออบเจ็กต์จากคลาส Employee ขึ้นมา เพื่อทดสอบการทำงานตามที่โจทย์ได้กำหนดเอาไว้

 

ทบทวนโจทย์

จาก ตอนที่ #12กำหนดเอาไว้ว่า ระบบของเราจะมีความสามารถ 4 ข้อ ดังนี้

1. สามารถขอค่า (Getter) ข้อมูลพนักงานได้

2. สามารถกำหนดค่า (Setter) ข้อมูลพนักงานได้

3. การเซ็ตค่าเงินเดือน มีเงื่อนไขคือ ห้ามน้อยกว่า 0 บาท และห้ามสูงกว่า 3,000,000 บาท

4. สามารถแสดงรายละเอียดข้อมูลของพนักงานได้

ซึ่งประกอบด้วย ชื่อ, เงินเดือน, เงินค่าล่วงเวลา และเงินเดือนสุทธิ

(คำนวณเงินเดือนสุทธิ: เงินเดือน + เงินค่าล่วงเวลา)

 

มาที่ไฟล์ Main.java คลิกพื้นที่ว่าง ในเมธอด main() เราจะสร้าง ออบเจ็กต์ จากคลาส Employee ขึ้นมาทดสอบความสามารถทุก ๆ ข้อ ตามที่โจทย์กำหนด

ภาพที่ 1 เตรียมเขียนโค้ด

 

 

ทดสอบ: การขอค่า (Getter) ข้อมูลพนักงาน

1. ประกาศตัวแปรชนิด Employee

ภาพที่ 2 เตรียมเขียนโค้ด

 

2. ตั้งชื่อตัวแปรว่า obj1

ภาพที่ 3 ตั้งชื่อตัวแปร

 

3. สร้างออบเจ็กต์จากคลาส Employee ด้วยคำสั่ง new ไปที่คอนสตรัคเตอร์ พร้อมกับกำหนดให้ obj1 เก็บค่าการอ้างอิงของออบเจ็กต์นี้เอาไว้

ภาพที่ 4 สร้างออบเจ็กต์

 

4. กำหนดค่าเริ่มต้นให้กับคอนสตรัคเตอร์ ชื่อ จงรักษ์ เงินเดือน 25,000 บาท ค่าล่วงเวลา 5,000 บาท

ภาพที่ 5 กำหนดค่าผ่าน Constructor

 

5. ใช้คำสั่งแสดงผล โดยการพิมพ์ sout กดคีย์ลัด Ctrl + Space และกดปุ่ม Enter จะทำให้เราได้เมธอด System.out.println(“”) ขึ้นมา

ภาพที่ 6 เขียนคำสั่งแสดงผล

 

6. เพิ่มคำว่า ชื่อ: ลงไป

ภาพที่ 7 เพิ่มคำที่จะแสดงผล

7. จากนั้น เชื่อมต่อ String ด้วยเครื่องหมาย + และใช้ obj1 เรียกใช้เมธอด getName() เพื่อดึงค่าชื่อ ของออบเจ็กต์ obj1 มาแสดงผล

ภาพที่ 8 ดึงค่าจากออบเจ็กต์มาแสดงผล

 

8. กด F6 เพื่อสั่ง Run โปรเจ็กต์ เราจะได้ผลลัพธ์ คือ ชื่อ: จงรักษ์ แสดงผลออกมาที่ส่วนของ Output

ภาพที่9 แสดงผลลัพธ์

 

9. ลองสร้างออบเจ็กต์ขึ้นมาอีก 1 ออบเจ็กต์ ตั้งชื่อว่า obj2 โดยกำหนดค่าเริ่มต้นเป็น ชื่อ แก้วตา เงินเดือน 56,000 บาท ค่าล่วงเวลา 2,000 บาท

ภาพที่ 10 สร้างออบเจ็กต์ที่ 2

 

10. สั่งแสดงผล โดยการดึงค่าชื่อ และเงินเดือน และค่าล่วงเวลา ของ obj2 ออกมา

ภาพที่ 11 เรียกใช้เมธอด Getters

 

11. กด F6 เพื่อสั่ง Run โปรแกรม เราจะได้ผลลัพธ์ ดังภาพที่ จะเห็นว่า เมธอดประเภท Getters ของเรา ทำงานได้ตามที่ต้องการแล้ว

ภาพที่12 แสดงผลลัพธ์

 

12. ลบคำสั่งทดสอบทั้งหมดทิ้งไป และเตรียมทดสอบเมธอด Setter กันค่ะ ไม่ต้องเสียดายโค้ดนะคะ เดี๋ยวเราจะได้เขียนใหม่จนจำได้ขึ้นใจไปเองค่ะ

ภาพที่ 13 ลบคำสั่งเดิมทิ้งไป

 

 

ทดสอบ: การกำหนดค่า (Setter) ข้อมูลพนักงาน

การทดสอบในขั้นตอนที่ผ่านมานั้น เป็นการกำหนดค่าเริ่มต้นให้กับ ออบเจ็กต์ ผ่านทาง คอนสตรัคเตอร์ ในตอนนี้ เราจะทดสอบการกำหนดค่า โดยผ่านเมธอดประเภท Setters ขั้นตอนดังนี้

 

1. ประกาศตัวแปร ชื่อ obj1 โดยมีชนิดข้อมูลเป็น Employee พร้อมกับกำหนดค่าเริ่มต้นให้เก็บตำแหน่งการอ้างอิง ของออบเจ็กต์ที่สร้างขึ้นมาใหม่

ภาพที่14 สร้างออบเจ็กต์ขึ้นมาใหม่

 

2. คลิกที่รูปหลอดไฟ สีเหลือง เพื่อดูรายละเอียด ข้อผิดพลาด เราจะได้รับคำแนะนำว่า ให้สร้าง คอนสตรัคเตอร์ Employee() ในคลาส Employee เพื่อจะได้สร้างออบเจ็กต์แบบ ไม่ต้องส่งค่าเริ่มต้นไปให้ได้

เราสามารถคลิกที่คำแนะนำนี้ เพื่อให้ NetBeans IDE สร้างคอนสตรัคเตอร์ Employee() ให้เรา แต่เพื่อความเข้าใจมากขึ้น เราจะไปสร้างเองดีกว่าค่ะ

ภาพที่ 15 แสดงข้อผิดพลาด

 

3. มาที่คลาส Employee และมองมาที่ คอนสตรัคเตอร์

จะเห็นว่า คอนสตรัคเตอร์ที่เราสร้างเอาไว้ในตอนแรก รับค่าเข้าไปในเมธอด 3 ตัวคือ name, salary และ overTime

ตอนสร้างออบเจ็กต์ เราจึงต้องส่งค่าทั้ง 3 ค่า เข้ามา หากไม่ส่งมา ก็เกิดข้อผิดพลาดขึ้น

ภาพที่ 16 แสดงการส่งค่าให้ Constructor

 

4. เราจะสร้าง คอนสตรัคเตอร์ แบบไม่รับค่าอะไรขึ้นมา ให้คลิกหาพื้นที่ว่าง เตรียมสร้างโค้ด

ภาพที่ 17 เตียมเขียนโค้ด

 

5. กดคีย์ลัด Alt + Insert และเลือก คอนสตรัคเตอร์

ภาพที่ 18 เลือก Constructor

 

6. จะปรากฏหน้าจอให้สร้างคอนสตรัคเตอร์ คลิกที่ Generate

ภาพที่ 19 คลิกที่ Generate

 

7. โปรแกรม NetBeans IDE จะเขียนโค้ดให้เรา ทำให้ได้ Constructor แบบไม่รับค่าอะไรขึ้นมา 1 เมธอด

ภาพที่ 20 แสดง Empty Constructor

 

8. กลับมาที่ไฟล์ Main.java จะเห็นว่า ตอนนี้ไม่มี ข้อผิดพลาดแล้ว

ภาพที่ 21 แสดงโค้ดไม่มี Error

 

9. คราวนี้เราจะ เรียกใช้เมธอด Setters เพื่อ ทำการเช็ตค่าให้ตัวแปรต่าง ๆ แทน สามารถเขียนโค้ดได้ ดังภาพที่ 22

ภาพที่ 22 การเรียกใช้ Setters

 

10. ใช้คำสั่งแสดงผล และพิมพ์ข้อความว่า ออบเจ็กต์ที่ 1: ลงไป

ภาพที่ 23 เพิ่มโค้ดการแสดงผล

 

11. จากนั้น เชื่อมต่อข้อความ กับ obj1

ภาพที่ 24 เพิ่มโค้ดการแสดงผล

 

12. กด F6 เพื่อสั่งแสดงผลลัพธ์ จะเห็นว่า เราได้คำตอบที่ถูกต้อง ตามค่าที่กำหนดให้กับออบเจ็กต์แล้ว

ภาพที่ 25 แสดงผลลัพธ์

ลองสร้างหลาย ๆ ออบเจ็กต์ มาทดสอบดูได้นะคะ ในหัวข้อต่อไป เราจะทดสอบเงื่อนไขของการกำหนดค่าให้กับเงินเดือนกันค่ะ

 

 

ทดสอบ: เงื่อนไขกำหนดค่าเงินเดือน ไม่น้อยกว่า 0 และไม่เกิน 3,000,000 บาท

1. ลองเปลี่ยนค่าที่เมธอด setSalary() เป็น 0

ภาพที่ 26 ส่งค่า 0 ไปให้เมธอด setSalary()

 

2. จากนั้นกด F6 เพื่อสั่ง Run โปรแกรม จะเห็นว่า ตอนนี้เราสามารถกำหนดค่าเงินเดือนให้เป็น 0 บาท ได้

ภาพที่27 แสดงผลลัพธ์

 

3. มาที่ไฟล์ Employee.java และมองไปที่ เมธอด setSalary()

ภาพที่ 28 แสดงเมธอด setSalary()

 

4. เพื่มคำสั่ง if โดยมีเงื่อนไข คือ หากค่า salary ที่รับเข้ามา มีค่าน้อยกว่า หรือเท่ากับ 0 ให้แสดงข้อความแจ้งเตือน

ภาพที่29 แสดงการเพิ่มเงื่อนไข โดยการใช้ if

 

5. กลับมาที่ไฟล์ Main.java กด F6 เพื่อสั่ง Run โปรเจ็กต์ เราจะเห็นข้อความแจ้งเตือนแสดงผลที่ Output

ภาพที่ 30 แสดงผลลัพธ์

 

6. ที่เมธอด setSalary() ลองส่งค่า 4000000 ไป

ภาพที่31 ส่งค่า 4 ล้าน ไปให้เมธอด setSalary()

 

7. กด F6 เพื่อสั่ง Run โปรเจ็กต์ จะเห็นว่า ตอนนี้สามารถกำหนดค่าให้ salary มากกว่า 3 ล้านบาทได้

ภาพที่32 แสดงผลลัพธ์

 

8. มาที่ไฟล์ Employee.java ในเมธอด setSalary() ให้เพิ่มคำสั่ง else if ลงไป เพื่อกำหนดเงื่อนไขว่า ถ้าค่าที่รับเข้ามา มากกว่า 3 ล้านบาท ให้แสดงข้อความแจ้งเตือน

ภาพที่ 33 แสดงการเพิ่มเงื่อนไขที่ 2

 

9. กด F6 เพื่อสั่ง Run โปรเจ็กต์ จะเห็นว่า ตอนนี้มีข้อความแจ้งเตือนขึ้นมาแล้ว

ภาพที่ 34 แสดงผลลัพธ์

 

10. สุดท้าย เพิ่มคำสั่ง else และนำคำสั่ง การกำหนดค่าไปไว้ภายใน

ภาพที่ 35 แสดงการใช้คำสั่ง else

 

11. การเขียนโค้ดในเมธอด setSalary() เสร็จเรียบร้อยแล้ว กลับมาที่ไฟล์ Main.java ลองสร้างออบเจ็กต์ที่ 2 ขึ้นมา แต่กำหนดค่าผ่านทาง คอนสตรัคเตอร์ โดยกำหนดให้เงินเดือน มีค่า 5 ล้านบาท

ภาพที่ 36 แสดงโค้ดออบเจ็กต์ที่ 2

 

12. กด F6 เพื่อสั่ง Run จะเห็นว่า การกำหนดค่าผ่าน คอนสตรัคเตอร์นั้น ไม่สามารถทำงานตามเงื่อนไขได้

ภาพที่ 37 แสดงผลลัพธ์

 

13. มาที่ไฟล์ Employee.java และมองมาที่ คอนสตรัคเตอร์

ภาพที่ 38 แสดงโค้ดใน Constructor

 

14. เปลี่ยนการกำหนดค่าให้ salary โดยตรง เป็นการ เรียกใช้เมธอด setSalary() แทน

ภาพที่ 39 แสดงการแก้ไขโค้ด

 

15. กด F6 เพื่อ Run โปรเจ็กต์ จะเห็นว่าตอนนี้ โปรแกรมทำการแจ้งตือนผู้ใช้งานแล้ว

ภาพที่ 40 แสดงผลลัพธ์

 

 

ทดสอบ: การแสดงรายละเอียดข้อมูลพนักงาน และคำนวณเงินเดือนสุทธิ

เราใช้เมธอด toString() ในการแสดงรายละเอียดข้อมูลของพนักงาน หรือคลาส Employee เราจะเพิ่มโค้ดในส่วนของการคำนวณเงินเดือนสุทธิ ลงไปในเมนูนี้

 

1. มาที่ไฟล์ Employee.java และมองไปที่เมธอด toString()

ภาพที่ 41 โค้ดในเมอด toString()

 

2. เพิ่มการแสดงผล เงินเดือนสุทธิ และนำ เงินเดือน มาบวกกับค่าล่วงเวลา (salary + overTime)

ภาพที่ 42 การเพิ่มโค้ดคำนวณหาเงินเดือนสุทธิ

 

3. กลับมาที่ไฟล์ Main.java กำหนดค่าให้ออบเจ็กต์ obj2 มีเงินเดือน 50000 บาท

ภาพที่ 43 เปลี่ยนค่าเงินเดือน

 

4. กด F6 เพื่อ Run โปรเจ็กจะเห็นว่า ตอนนี้เราได้ยอดเงินเดือนสุทธิมาแสดงผล อย่างถูกต้องแล้ว

ภาพที่ 44 แสดงผลลัพธ์

สำหรับการทบทวนเรื่อง Class และ Object ก็จบลงเพียงเท่านี้ ในตอนต่อไป เราจะไปทำความรู้จักกับคำว่า “ตัวแปร” ให้ลึกซึ่งมากยิ่งขึ้นค่ะ