More Related Content Similar to Power point (20) More from Pookie Pook (6) Power point2. Method
เป็นระเบียบวิธีในการทางาน โดยการจัดกลุ่มข้อมูล
สร้างเป็น Function ย่อยภายในโปรแกรมเพื่อง่ายต่อการบริหาร
จัดการกลุ่มข้อมูล ซึ่งมีทั้ง Method ที่คุณสร้างขึ้นใช้งาน
เอง และ Method ที่ Java นั้นมีอยู่แล้ว รอเพียงการถูกเรียกใช้
4. รูปแบบ
Method modifiers เป็นส่วนที่บอกว่าเมธอดนี้สามารถเรียกใช้ได้ในระดับใด จะ
ประกอบด้วยpublic static
Return_ Type ส่วนนี้จะบอกว่าเมื่อเมธอดนี้ถูกเรียกใช้และจะมีการสงค่ากลับมา
หรือไม่ ถ้ามีจะส่งกลับเป็นข้อมูลประเภทใด ถ้าไม่มีส่งค่ากลับจะใช้คาว่า void
MethodName เป็นชื่อของเมธอด
parameter เป็นตัวแปรที่ใช้ส่งข้อมูลเข้าไปในเมธอด ถ้ามีหลายตัวแปรจะใช้
เครื่องหมาย (;)คั่นระหว่างตัวแปร
reture เป็นส่วนที่ใช้ส่งค้ากลับให้กับชื่อเมธอด
5. ประเภทของเมธอด (Type of Method)
1. Static Method - เมธอดของคลาส เรียกชื่อได้ทันที
2. Instance Method - เมธอดพฤติกรรมทั่วไปในคลาส
3. Constructor Method - เมธอดที่มีชื่อเดียวกับคลาส
4. Overloading Method - ชือเหมือนกัน แต่จานวนหรือชนิดตัวแปรต่างกัน
่
5. Overriding Method - ชื่อเหมือนกันในคลาสแม่และลูก แต่ทางานตามคลาสลูก
1. Static Method
มีคาว่า static นาหน้า เป็นเมธอดของคลาส สามารถเรียกใช้ตัวแปรได้ทันที โดยไม่
ต้องมีการสร้างอ็อบเจ็กต์ขึ้นมาขึ้นมาเพื่อเรียกใช้
การเรียกใช้:
อยู่ในคลาสเดียวกัน: method(argument);
อยู่ต่างคลาส: class.method(argument);
ถ้าเป็นตัวแปร ก็เรียกชื่อ variable ได้เลย
6. 2. Instance Method
เมธอดทั่วไปที่บอกพฤติกรรมในคลาสหนึ่งๆ ต้องมีการสร้างอ็อบเจ็กต์ขึ้นมาก่อนจึง
จะเรียกใช้ได้ และค่าของข้อมูลจะเปลี่ยนไปตามอ็อบเจ็กต์ที่สร้างขึ้น
การเรียกใช้:
object.method(argument);
object.attribute
3. Constructor Method
เมธอดที่มีชื่อเดียวกับคลาส เมื่ออ็อบเจ็กต์ใดๆถูกสร้างขึ้นมาแล้ว เมธอดนี้จะถูก
เรียกขึ้นมาเป็นเมธอดแรกทันที (มักใช้ค่าที่เริ่มต้นการทางานของเครื่อง หรือเรามา
กาหนดค่าเริ่มต้นเอาเอง) constructor ที่สร้างขึ้นมาอัตโนมัติจะไม่มีการรับ
ค่าพารามิเตอร์ และต้องไม่มีคืนค่าเป็น void
Class object = new Class();
7. 4. Overloading Method
เมธอดที่มีชื่อเหมือนกัน แต่รับอากิวเมนต์ชนิดต่างกันหรือจานวนอากิวเมนต์ไม่เท่ากัน (overload
constructor)
Overloading Method
public int Print(int idbook){...}
public String Print(int bookname){...}
Overloading Constructor
public Circle() {...}
public Circle(int radius) {...}
Output จะแสดง Student
8. 5. Overriding Method
เมธอดที่มีชื่อและชนิดตัวแปรเหมือนกัน แต่เขียนโปรแกรมในลักษณะที่เมธอดหนึ่งอยู่ในคลาสแม่
อีกเมดธอดหนึ่งอยู่ในคลาสลูก ซึ่งเมื่อรับค่ามาเหมือนกัน โปรแกรมจะทางานตามคาสั่งที่อยู่ในเมธอด
ของคลาสลูกโดยอัตโนมัติ (Inheritance)
class Person {
public void print() {System.out.print("People");}
}
class Student extend Person {
public void print() {System.out.print("Student");}
}
11. จากโปรแกรม เริ่มต้นจะทาเมธอด main ก่อน เมื่อมีการเรียกชื่อเมธอดที่สร้าง
ขึ้นโปรแกรมจะกระโดดไปยังเมธอดทีสร้างขึ้น แล้วทาไปจนจบ จากนั้นเมธอดจะ
กลับมาทางานที่เมธอดหลักต่อไป
16. จากรูปเป็นเมธอดชื่อ sqfrt โดยเมธอดนี้จะรับพารามิเตอร์ที่มีค่าเป็น 16 เข้าไป
จากนั้นเมธอดจะคืนค่ารากที่สองซึ่งมีค่าเป็น 4 ออกมา
จากรูปเป็นตัวอย่างเมธอดชื่อ area เมธอดนี้จะใช้คานวณหาพื้นที่ของสี่เหลี่ยม
โดยรับพารามิเตอร์เข้าไปสองค่าคือ ขนาดความกว้างและขนาดความยาว
จากนั้นเมธอดจะคืนค่าพื้นทีของสี่เหลียมออกมาในภาษาจาวามีคลาส Math ซึ่ง
่
เป็น API ของจาวาตัวหนึ่งที่ภายในได้บรรจุเมธอดสาหรับใช้งานทาง
คณิตศาสตร์ไว้มากมาย การเรียกใช้งานเมธอดในคลาสนี้ทาได้โดยเรียกชื่อ
คลาส ตามด้วยเครื่องหมายจุดแล้วตามด้วยเมธอด อย่างเช่น
เมธอด Math.pow ใช้สาหรับหาค่ายกกาลัง เป็นต้น นอกจากนี้ภายในคลาสยัง
บรรจุค่าคงที่ต่างๆ ไว้ด้วย การเรียกใช้เมธอดต่างๆ ผู้ใช้จะต้องทราบว่าเมธอด
นั้นต้องส่งค่าใดเข้าไป และเมธอดจะคืนค่าใดออกมา การเรียกใช้เมธอดทาง
คณิตสาสตร์จะทาได้โดยเรียกชื่อคลาส จากนั้นใส่จุดแล้วตามด้วยชื่อเมธอด
พร้อมใส่อาร์กิวเมนต์เข้าไป เช่น
17. ตัวอย่างของเมธอดต่างๆ มีดังนี้
เมธอด Math .pow
เมธอดนี้จะมีอาร์กิวเมนต์แบบ double สองตัว โดยจะนาอาร์กิวเมนต์ตัว
แรกไปยกกาลังด้วยอาร์กิวเมนต์ตัวที่สอง เช่น
จะเป็นการหาค่าของ 4.0 ยกกาลัง 2.0 หรือถ้าหากต้องการหาค่า 3 เท่าของ
6 ยกกาลัง 3 หาได้ดังนี้
18. จะเป็นการหาค่าของ 4.0 ยกกาลัง 2.0 หรือถ้าหากต้องการหาค่า 3 เท่าของ6
ยกกาลัง 3 หาได้ดังนี้
เมธอด Math.sqrt
เมธอดนี้จะรับค่าอาร์กิวเมนต์แบบdoble เข้าไปหนึ่งตัว จากนั้นจะคืนค่ารากที่
สองของอาร์กิวเมนต์กลับออกมา เช่น
จะได้คาตอบออกมาเป็น 3.0
20. MathDemo.javaเป็นตัวอย่างการใช้เมธอดในคลาส Math
เมื่อรันโปรแกรมผลลัพธ์ที่ได้
จะเป็นดังนี้
สาหรับการใช้เมธอดRandom หรับสุ่มคัวเลขนั้นโปรแกรมจะคืนค่าระหว่าง0.0
ถึง 1.0 ออกมาตัวอย่างเป็นการวนลูปสุ่มตัเลขขึ้นมาจานวน 10 ครั้ง โดยกาสุ่ม
แต่ละครั้งจะได้ค่าต่างกัน
21. TenRandomNumber.java . แสดงการสุ่มเลขจานวน 10 ครั้ง
เมื่อรันโปรแกรมจะได้
ผลลัพธ์ดังนี้
จากผลลัพธ์การรันโปรแกรมจะพบว่าค่าตัวเลขที่ออกมาจะเป็นเลขทศนิยม แต่
ถ้าหากต้องการสุ่มเลขออกมาให้เป็นเลขจานวนเต็มก็ทาได้โดยการเขียน
โปรแกรมเพิ่มเติม เช่น ถ้าหากต้องการเขียนโปรแกรมสุ่มการทอยลูกเต๋า ซึ่ง
ต้องการค่าตัวเลขในช่วง 1 ถึง 6 สามารถทาได้ดังขั้นตอนต่อไปนี้
22. ใช้เมธอด random สุ่มค่ามาเก็บในตัวแปร r
ค่าของตัวแปร r จะได้อยู่ระหว่าง 0.0 ถึง 1.0 ดังนั้นจะต้องปรับค่าให้มีค่ามากขึ้น
โดยนา 6.0 ไปคูณกับค่าที่สุ่มได้ แล้วปรับค่าให้อยู่ในช่วง 1.0 ถึง 7.0 ดังนี้
และในการเขียนโปรแกรมจะต้องให้อาร์กิวเมนต์พุตออกมาเป็นเลข
จานวนเต็ม ดังนั้นเขียนคาสั่งได้ดังนี้
23. การส่งค่าอาร์กิวเมนต์ของเมธอด
เราสามารถสร้างเมท็อดที่มีการรับค่าจากผู้เรียกเพื่อกาหนดพฤติกรรมการ
ทางานของเมท็อดนั้น ๆ ค่าที่ถูกส่งไปนี้เรียกว่า อาร์กิวเมนต์ (argument) ส่วนเมท็อดที่ถูก
เรียกจะรับค่าเหล่านี้ผ่านมาทางพารามิเตอร์ (parameter) ซึ่งถูกนิยามไว้ใน
ส่วน parameter_list ของการประกาศเมท็อด เมท็อดแต่ละอันสามารถถูกประกาศให้มี
พารามิเตอร์ได้ตั้งแต่ศูนย์ตัวหรือมากกว่า โดยพารามิเตอร์แต่ละตัวจะต้องมีรูปแบบข้อมูล
กากับไว้เสมอ และอาร์กิวเมนต์ที่ใช้ในขณะเรียกใช้งานเมท็อดจะต้องมีรูปแบบข้อมูลที่
ตรงกัน
เช่น เมท็อด PrintCharLine ด้านล่างนี้ดัดแปลงมาจากเมท็อด PrintLine เมท็
อดใหม่นี้ กาหนดให้มีพารามิเตอร์สองตัว คือ c เป็นชนิด char และ len เป็น
ชนิด int โดยที่พารามิเตอร์ c ใช้ สาหรับระบุอักขระที่จะพิมพ์ออกทางจอภาพ
) ไม่ได้พิมพ์เพียงแค่ดาวอีกต่อไป (และ len ใช้ระบุจานวนอักขระที่ต้องการ
พิมพ์ในหนึ่งบรรทัด
24. 1: using System;
2: class ParamNoRet {
3: static void PrintCharLine(char c, int len) {
4: for (int i = 0; i < len; i++)
5: Console.Write(c);
6: Console.WriteLine();
7: }
8:
9: static void Main() {
10: PrintCharLine(’o’, 10);
11: PrintCharLine(’x’, 20);
12: }
13: }
25. จากโปรแกรมข้างต้น การเรียกใช้เมท็อด PrintCharLine ครั้งแรกภายในเมท็
อด Main ใน บรรทัดที่ 10 มีอาร์กิวเมนต์เป็น 'o' และ 10 ซึ่งเมท็
อด PrintCharLine จะรับค่าอาร์กิวเมนต์นี้เข้ามาอยู่ในพารามิเตอร์
c และ len ตามลาดับ ดังนั้นจะเห็นว่าบรรทัดที่ 4 และ 5 จะมีผลทาให้โปรแกรม
พิมพ์
อักขระ o ออกทางหน้าจอเป็นจานวน 10 ตัว ในทานองเดียวกัน การเรียกใช้เมท็
อด PrintCharLine ในบรรทัดที่ 11 จะมีผลทาให้โปรแกรมพิมพ์อักขระ x ออก
ทางหน้าจอเป็นจานวน 20 ตัว
28. นอกจากนี้ ถ้าหากต้องการให้ส่งค่า 3 กับค่า 4 ให้กับเมธอด showSumแล้วต้องการให้
แสดงผลบวกออกมาจะเขียนได้ดังนี้
ในการเขียนเมธอดที่มีการส่งค่ากลับ ค่าที่ส่งกลับมาจะเขียนไว้หลังคาว่า return ซึ่งอาจเป็น
ตัวแปรตัวเดียวหรือนิพจน์ที่มีการประมวลผลก็ได้
ตัวอย่าง จงสร้างเมธอดชื่อ Add โดยให้เมธอดนี้รับค่าอาร์กิวเมนต์ที่เป็นเลข
จานวนเต็มสองค่าเข้าไป แล้วคืนผลบวกของอาร์กิวเมนต์ทั้งสองออกมา
จากตัวอย่างนี้ค่าของข้อมูลที่ถูกส่งกลับมาจะเขียนเป็นนิพจน์ไว้หลังคาว่า return
30. การส่งค่ากลับแบบบูลีน
เมธอดอีกชนิดหนึ่งที่พบมากในการเขียนโปรแกรมคือ เมธอดที่มีการส่งค่ากลับ
แบบบูลีน โดยค่าที่ส่งกลับมาจะมีสองค่าเท่านั้น คือ จริง(true) กับเท็จ(false) ซึ่งจะใช้คาว่า
boolean ที่ส่วนหัว เมธอดลักษณะนี้มักใช้ในการตรวจสอบเงื่อนไขต่างๆ โดยส่งข้อมูลที่
ต้องการตรวจสอบเป็นอาร์กิวเมนต์เข้าไป ตัวอย่างเช่น ถ้าหากต้องการตรวจสอบว่าตัวเลข
ที่กาลังสนใจอยู่ เป็นตัวเลขในช่วง 1 ถึง 100 หรือไม่จะเขียนเมธอดได้ดังนี้
เราสามารถนาเมธอด isValidนี้ไปประยุกต์ใช้รมกับคาสั่งเลือกทาในโปรแกรมได้
อย่างเช่น ถ้าต้องการเขียนโปรแกรมทดสอบข้อมูล value มีค่าอยู่ในช่วงที่กาหนดหรือไม่
จะเขียนสเตตเมนต์ได้ดังนี้
32. ผลลัพธ์การรันโปรแกรมจะเป็นดังนี้
เมธอดที่มีการส่งค่ากลับคืนมานั้นสามารถมี return มากกว่าหนึ่งจุดได้
แต่เมื่อโปรแกรมทางานแล้วจะต้องส่งค่ากลับมาเพียงค่าเดียวเท่านั้น
35. 4.5 ตัวแปรแบบ Local
ตัวแปรที่ประกาศใช้ในเมธอดเรียกว่าตัวแปรแบบท้องถิ่น หรือตัวแปร
แบโลคอล(local variable) โดยจะใช้ได้เฉพาะสเตตเมนต์ในเมธอดเท่านั้น สเตต
เมนต์ต่างๆที่อยู่นอกเมธอดที่ประกาศตัวแปรนี้จะไม่สามารถเรียกใช้ตัวแปรนี้ได้
การประการตัวแปรแบบโลคอลนี้ จะทาให้เมธอดหลายๆเมธอดใช้ชื่อตัวแปร
เดียวกันได้ ดังตัวอย่างโปรแกรมที่ 4.10 โดยโปรแกรมนี้จะให้เมธอด main()
เรียกใช้เมะอดที่สร้างขึ้นสองเมธอดคือ Phuket และrayongโดยทั้งสองเมธอดนี้จะมี
ตัวแปรโลคอลชื่อเดียวกันคือ birds
โปรแกรมที่ 4.10LocalVars.java
37. สาหรับตัวอย่างโปรแกรมที่ 4.11 จะประกาศตัวแปร x เอาไว้ในเมธอด main
และประกาศตัวแปรชื่อ x อีกตัวหนึ่งไว้ในเมธอด one() ซึ่งก็จะไม่ใช่ตัวแปร x
ตัวเดียวกัน เมื่อในเมธอด main กาหนดค่าให้กับตัวแปร x และเมธอด one ถูก
เรียกใช้ ก็จะไม่ทาให้ตัวแปร x ในเมธอด main เปลี่ยยนแปลงไป
โปรแกรมที่ 4.11Local2.java ตัวอย่างโปรแกรมแสดงการใช้ตัวแปร
แบบโลคอล
เมื่อรันโปรแกรมผลลัพธ์ที่ได้จะเป็นดังนี้
38. 4.6 โอเวอร์โหลดเมธอด (Overloading Method)
จากตัวอย่างการสร้างเมธอดที่ได้ศึกษาทั้งหมดจะพบว่าเมธอดต่างๆ จะรวมอยู่ใน
คลาสเดียวกันและเราสามารถสร้างเมธอดขึ้นเองได้หลายเมธอด ถ้าหากเมธอดที่สร้างขึ้นมี
หลายเมธอดและมีเมธอดที่มีชื่อซ้ากันแต่มีการส่งอาร์กิวเมนต์ต่างกัน และมีจานวนพารามิเตอร์
ในการรับข้อมูลไม่เท่ากัน จะเรียกเมะอดประเภทนี้ว่าโอเวอร์โหลดเมธอด (Overload Method)
เมื่อเมธอดถูกเรียกใช้ โปรแกรมจะพิจารณาว่าควรใช้เมธอดใด ดังโปรแกรมที่ 4.12
โปรแกรมที่ 4.12เป็นโปรแกรมตัวอย่างโอเวอร์โหลดเมธอด โดยสร้างเมธอดหาค่า
ผลรวมของตัวเลขขึ้นมา
40. โปรแกรมที่ 4.13 CalGrade.java จะเป็นการสร้างเมธอดสาหรับคานวณเกรดขึ้นมา โดยจะ
รับค่าคะแนนเป็นอาร์กิวเมนต์ส่งไปให้เมธอด
เมื่อมีการเรียกใช้เมธอดก็จะคืนค่าเกรดที่ได้กลับมา
โดยการคานวณเกรดนั้นจะใช้คาสั่ง
ตัดสินใจเป็นตัวคิดว่าคะแนนนั้นๆ
ควรได้เกรดใด โดยเมธอดที่สร้างขึ้น
จะคืนค่าเป็นตัวอักขระ
จากโปรแกรมจะเห็นว่าเมื่อเรียกใช้เมธอดคานวณ
เกรดจะส่งค่าคะแนนเป็น 75 เข้าไป ผลลัพธ์ที่
ได้จะเป็นดังนี้
41. โปรแกรมที่ 4.14 BarChart.java ตัวอย่างนี้เป็นการสร้างเมธอดชนิดที่ไม่มีการคืน
ค่ากลับชื่อว่า Bar โดยเมธอดนี้จะรับค่าอาร์กิวเมนต์เป็นตัวเลขเข้าไป แล้วจะแสดง
เครื่องหมาย* ตามจานวนตัวเลขที่รับเข้าไป ในลักษณะกราฟแท่งในแนวนอน
42. เมื่อรันโปรแกรมและป้อนค่า 24 เข้าไป ผลลัพธ์ที่ได้จะเป็นดังนี้
สรุป
ในการเขียนโปรแกรมโดยทั่วๆไปนั้น จะมีเมธอดที่ให้คอมพิวเตอร์ทางานอย่างใด
อย่างหนึ่ง ถ้าหากมีเมธอดหลายๆเมธอด เราสามารถรวมเมธอดนี้เป็นกลุ่มใหม่ได้ ในการสร้าง
เมธอดนี้ผู้เขียนโปรแกรมจะต้องพิจารณาว่าเมธอดที่สร้างขึ้นมีการส่งค่าอาร์กิวเมนต์เข้าไป
หรือไม่ และเมธอดนี้จะมีการส่งค่ากลับออกมาหรือไม่ ถ้ามีค่าที่ส่งกลับมาเป็นข้อมูลประเภทใด
ในโปรแกรมหนึ่งๆสามารถมีเมธอดชื่อเดียวกันได้ แต่มีการทางานที่ต่างกัน เมธอดลักษณะนี้
เรียกว่า โอเวอร์โหลดเมธอด
43. จัดทาโดย
1. น.ส. จารุภา พรหมมงคล เลขที่ 28
2. น.ส. จุฑามาศ อัครเดชพงศา เลขที่ 29
3. น.ส. หทัยชนก ห้วยหงส์ทอง เลขที่ 32
4. น.ส. ศิริวรรณ พงศโอสธี เลขที่ 33
5. น.ส. สิริกาญจน์ พานะกิจ เลขที่ 34
6. นาย จิตรเทพ สกุลธนาศร เลขที่ 5
ชั้น ม. 6/2