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

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

 

ทบทวนโจทย์

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

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

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

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

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

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

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

 

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

TH-JAVA Quick Start Java -14-1

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

 

 

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

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

TH-JAVA Quick Start Java -14-2

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

 

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

TH-JAVA Quick Start Java -14-3

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

 

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

TH-JAVA Quick Start Java -14-4

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

 

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

TH-JAVA Quick Start Java -14-5

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

 

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

TH-JAVA Quick Start Java -14-6

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

 

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

TH-JAVA Quick Start Java -14-7

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

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

TH-JAVA Quick Start Java -14-8

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

 

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

TH-JAVA Quick Start Java -14-9

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

 

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

TH-JAVA Quick Start Java -14-10

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

 

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

TH-JAVA Quick Start Java -14-11

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

 

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

TH-JAVA Quick Start Java -14-12

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

 

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

TH-JAVA Quick Start Java -14-13

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

 

 

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

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

 

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

TH-JAVA Quick Start Java -14-14

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

 

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

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

TH-JAVA Quick Start Java -14-15

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

 

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

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

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

TH-JAVA Quick Start Java -14-16

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

 

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

TH-JAVA Quick Start Java -14-17

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

 

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

TH-JAVA Quick Start Java -14-18

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

 

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

TH-JAVA Quick Start Java -14-19

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

 

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

TH-JAVA Quick Start Java -14-20

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

 

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

TH-JAVA Quick Start Java -14-21

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

 

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

TH-JAVA Quick Start Java -14-22

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

 

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

TH-JAVA Quick Start Java -14-23

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

 

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

TH-JAVA Quick Start Java -14-24

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

 

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

TH-JAVA Quick Start Java -14-25

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

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

 

 

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

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

TH-JAVA Quick Start Java -14-26

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

 

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

TH-JAVA Quick Start Java -14-27

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

 

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

TH-JAVA Quick Start Java -14-28

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

 

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

TH-JAVA Quick Start Java -14-29

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

 

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

TH-JAVA Quick Start Java -14-30

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

 

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

TH-JAVA Quick Start Java -14-31

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

 

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

TH-JAVA Quick Start Java -14-32

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

 

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

TH-JAVA Quick Start Java -14-33

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

 

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

TH-JAVA Quick Start Java -14-34

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

 

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

TH-JAVA Quick Start Java -14-35

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

 

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

TH-JAVA Quick Start Java -14-36

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

 

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

TH-JAVA Quick Start Java -14-37

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

 

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

TH-JAVA Quick Start Java -14-38

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

 

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

TH-JAVA Quick Start Java -14-39

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

 

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

TH-JAVA Quick Start Java -14-40

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

 

 

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

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

 

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

TH-JAVA Quick Start Java -14-41

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

 

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

TH-JAVA Quick Start Java -14-42

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

 

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

TH-JAVA Quick Start Java -14-43

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

 

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

TH-JAVA Quick Start Java -14-44

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

 

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

 

Comments

comments

ธมนวรรณ มณีจันทร์

เป้าหมาย : "พัฒนาคุณภาพชีวิตผู้คน ผ่านการส่งมอบความรู้ ด้วยเทคโนโลยีที่ดีที่สุด" ... ประวัติ