บทที่ 4 Method (2)
WEEK6 w6_000.rar การส่งออบเจ็กต์ไปยังเมธอด ข้อ 26 static method ข้อ 28 as6_000.rar การส่งออบเจ็กต์ไปยังเมธอด ข้อ 25,27
ArrayList เป็นโครงสร้างข้อมูลที่ใช้อาร์เรย์จัดเก็บข้อมูลแบบรายการลำดับที่ต่อเนื่องกัน อ้างถึงข้อมูลในลำดับใดๆ ด้วยการระบุตำแหน่ง (index) ของข้อมูลที่ต้องการ รองรับการเก็บข้อมูลประเภทออบเจ็กต์ ซึ่งเป็นอาร์เรย์ของ Reference สามารถขยายขนาดได้เองโดยอัตโนมัติ ในขณะที่อาร์เรย์ไม่สามารถเปลี่ยนแปลงขนาดของอาร์เรย์หลังจากที่ถูกสร้างขึ้นได้
เมธอดในคลาส ArrayList เมธอด size() เป็นเมธอดหาจำนวนสมาชิกทั้งหมดของ ArrayList มีรูปแบบการใช้งานดังนี้ n = arrayListName.size(); โดยที่ arrayListName เป็นชื่อของออบเจ็กต์ ArrayList ที่ต้องการหาจำนวนสมาชิก n เป็นจำนวนสมาชิกใน ArrayList ที่ได้จากคืนค่าของเมธอด
เมธอด add() เป็นเมธอดสำหรับเพิ่มสมาชิกใน ArrayList มีรูปแบบการใช้งานดังนี้ arrayListName.add(objectValue); โดยที่ arrayListName เป็นชื่อของออบเจ็กต์ ArrayList ที่ต้องการเพิ่มสมาชิก objectValue เป็นข้อมูลที่ต้องการเพิ่มใน ArrayList ผลที่ได้จากใช้เมธอด add จะเป็นการเพิ่มสมาชิกในตำแหน่งสุดท้ายของ ArrayList หากต้องการเพิ่มสมาชิกที่ตำแหน่งใดๆ ใน ArrayList ให้ระบุตำแหน่งที่ต้องการเพิ่มสมาชิกไปด้วย arrayListName.add(index, objectValue); โดยที่ index เป็นตำแหน่งที่ต้องการเพิ่มสมาชิก
เมธอด get() เป็นเมธอดสำหรับหาค่าสมาชิกใน ArrayList ณ ตำแหน่งที่ต้องการ มีรูปแบบการใช้งานดังนี้ objectValue = arrayListName.get(index); โดยที่ arrayListName เป็นชื่อของออบเจ็กต์ ArrayList ที่ต้องการหาค่าสมาชิก objectValue เป็นออบเจ็กต์ที่ใช้รับข้อมูลจากเมธอด index เป็นตำแหน่งที่ต้องการหาค่าสมาชิก สามารถนำข้อมูลประเภทออบเจ็กต์นี้ ไป แปลงเป็นชนิดข้อมูลที่ต้องการได้ โดยใช้ เมธอดในคลาส Wrapper ได้แก่ เมธอด toString(), เมธอดประเภท parseType()
ความแตกต่างของ Array และ ArrayList
การส่งออบเจ็กต์ไปยังเมธอด การส่งชนิดข้อมูลพื้นฐานจะเป็นการส่งค่าข้อมูลแบบค่า (pass by value) ไปให้กับเมธอดที่เรียกใช้ หากมีการเปลี่ยนแปลงค่าของพารามิเตอร์ภายในเมธอดที่เราเรียกใช้ จะไม่ทำให้ค่าของอาร์กิวเมนต์เปลี่ยนตาม การส่งชนิดข้อมูลแบบอ้างอิงซึ่งใช้กับข้อมูลประเภทออบเจ็กต์ จะเป็นการส่งค่าตำแหน่งอ้างอิง (pass by reference) ไปให้กับเมธอดที่เรียกใช้ ดังนั้น การเปลี่ยนแปลงค่าพารามิเตอร์ภายในเมธอดที่เรียกใช้ จะมีผลทำให้ค่าของอาร์กิวเมนต์ที่ส่งไปเปลี่ยนตาม คุณลักษณะเช่นนี้สามารถนำไปประยุกต์ใช้กับกรณีที่ต้องการเปลี่ยนแปลงค่าของอาร์กิวเมนต์ที่ส่งไปภายใต้การทำงานของเมธอด 1 เมธอด เช่น การคำนวณการแลกเหรียญที่ต้องการผลเป็นจำนวนเหรียญ 10 บาท, เหรียญ 5 บาท, เหรียญ 2 บาท และเหรียญ 1 บาท ซึ่งผลลัพธ์ที่ต้องการมีทั้งหมด 4 ค่า
โปรแกรมคำนวณแลกเหรียญ ใช้การส่งข้อมูลแบบค่า
โปรแกรมคำนวณแลกเหรียญ ใช้การส่งออบเจ็กต์
โปรแกรมข้อ 26 คลาส countScore ประกอบด้วยข้อมูลนักศึกษาที่มีช่วงคะแนนสอบต่าง ๆ 5 ค่า คือ ข้อมูลคะแนนสอบตั้งแต่ 80 คะแนนขึ้นไป, ข้อมูลคะแนนสอบตั้งแต่ 70 คะแนนแต่น้อยกว่า 80 คะแนน, ข้อมูลคะแนนสอบตั้งแต่ 60 คะแนนแต่น้อยกว่า 70 คะแนน, ข้อมูลคะแนนสอบตั้งแต่ 50 คะแนนแต่น้อยกว่า 60 คะแนน, ข้อมูลคะแนนสอบน้อยกว่า 50 คะแนน และเมธอด void processScoreData(ArrayList studentScoreData, scoreOutput output) ทำหน้าที่คำนวณจำนวนและเปอร์เซ็นต์นักศึกษาที่สอบได้ในแต่ละช่วงคะแนน จงเขียนโปรแกรมเพื่อสร้าง result และเขียนโปรแกรมรับข้อมูลคะแนนสอบของนักศึกษาจำนวนหนึ่ง เรียกใช้เมธอด และแสดงผล ซึ่งประกอบด้วย จำนวนนักศึกษาทั้งหมด, คะแนนสอบของนักศึกษาแต่ละคน จำนวนนักศึกษาที่สอบได้ในแต่ละช่วงคะแนน ทางจอภาพ
ประเภทของเมธอด (1) Instance Method เป็นเมธอดที่เรียกผ่านออบเจ็กต์ที่สร้างจากคลาสด้วยตัวดำเนินการ new
ประเภทของเมธอด (2) Static Method
ประเภทของเมธอด (3) โปรแกรมคำนวณเงินภาษีด้วย static method