Power point

1,195 views
1,004 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,195
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Power point

  1. 1. เมธอด (method)
  2. 2. Method เป็นระเบียบวิธีในการทางาน โดยการจัดกลุ่มข้อมูลสร้างเป็น Function ย่อยภายในโปรแกรมเพื่อง่ายต่อการบริหารจัดการกลุ่มข้อมูล ซึ่งมีทั้ง Method ที่คุณสร้างขึ้นใช้งานเอง และ Method ที่ Java นั้นมีอยู่แล้ว รอเพียงการถูกเรียกใช้
  3. 3. โครงสร้างของเมธอดจากโครงสร้างจะเห็นว่าโปรแกรมหนึ่งอาจมีหลาย Class และในหนึ่ง Class จะมีกี่ Method ก็ได้แต่ใน Class หลัก (Class ที่มี public นาหน้า) จะต้องมี mainMethod เสมอ
  4. 4. รูปแบบMethod modifiers เป็นส่วนที่บอกว่าเมธอดนี้สามารถเรียกใช้ได้ในระดับใด จะประกอบด้วยpublic staticReturn_ Type ส่วนนี้จะบอกว่าเมื่อเมธอดนี้ถูกเรียกใช้และจะมีการสงค่ากลับมาหรือไม่ ถ้ามีจะส่งกลับเป็นข้อมูลประเภทใด ถ้าไม่มีส่งค่ากลับจะใช้คาว่า voidMethodName เป็นชื่อของเมธอดparameter เป็นตัวแปรที่ใช้ส่งข้อมูลเข้าไปในเมธอด ถ้ามีหลายตัวแปรจะใช้เครื่องหมาย (;)คั่นระหว่างตัวแปรreture เป็นส่วนที่ใช้ส่งค้ากลับให้กับชื่อเมธอด
  5. 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. 6. 2. Instance Method เมธอดทั่วไปที่บอกพฤติกรรมในคลาสหนึ่งๆ ต้องมีการสร้างอ็อบเจ็กต์ขึ้นมาก่อนจึงจะเรียกใช้ได้ และค่าของข้อมูลจะเปลี่ยนไปตามอ็อบเจ็กต์ที่สร้างขึ้นการเรียกใช้:object.method(argument);object.attribute3. Constructor Method เมธอดที่มีชื่อเดียวกับคลาส เมื่ออ็อบเจ็กต์ใดๆถูกสร้างขึ้นมาแล้ว เมธอดนี้จะถูกเรียกขึ้นมาเป็นเมธอดแรกทันที (มักใช้ค่าที่เริ่มต้นการทางานของเครื่อง หรือเรามากาหนดค่าเริ่มต้นเอาเอง) constructor ที่สร้างขึ้นมาอัตโนมัติจะไม่มีการรับค่าพารามิเตอร์ และต้องไม่มีคืนค่าเป็น voidClass object = new Class();
  7. 7. 4. Overloading Method เมธอดที่มีชื่อเหมือนกัน แต่รับอากิวเมนต์ชนิดต่างกันหรือจานวนอากิวเมนต์ไม่เท่ากัน (overloadconstructor)Overloading Methodpublic int Print(int idbook){...}public String Print(int bookname){...}Overloading Constructorpublic Circle() {...}public Circle(int radius) {...}Output จะแสดง Student
  8. 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");}}
  9. 9. การเรียกใช้เมธอดโปรแกรมทุกโปรแกรมเมธอดทีชื่อว่า main()จะถูกเรียกใช้โยอัตโนมัติเมื่อเริ่มต้นทาโปรแกรมสาหรับเมธอดที่เป็นแบบ static นั้นถ้าหากต้องการใช้งานเมธอดก็สามารถเรียกชื่อเมธอดขึ้นมาใช้งานได้ทันที ถ้าหากเมธอดที่เรียกใช้ต้องมีพารามิเตอร์เข้าไปด้วย การเรียกใช้เมธอดจะต้องระบุค่าพารามิเตอร์ด้วย ตัวอย่างเช่น เป็นการเรียกใช้เมธอด displayMessage() ซึ่งไม่ต้องมีกรส่งพารามิเตอร์เข้าไป เมื่อ โปรแกรมทางานมาถึงบรรทัดนี้ โปรแกรมจะโดดไปทางานยังเมธอดที่สร้างขึ้นทันที SimpleMethod.java เป็นโปรแกรมทีเรียกใช้เมธอดอย่างง่าย ในเมธอดหนึ่งๆสามารถเรียกขึ้นมาใช้งานได้หลายครั้ง เช่น
  10. 10. ผลลัพธ์จากการรันโปรแกรมจะเป็นดังนี้
  11. 11. จากโปรแกรม เริ่มต้นจะทาเมธอด main ก่อน เมื่อมีการเรียกชื่อเมธอดที่สร้างขึ้นโปรแกรมจะกระโดดไปยังเมธอดทีสร้างขึ้น แล้วทาไปจนจบ จากนั้นเมธอดจะกลับมาทางานที่เมธอดหลักต่อไป
  12. 12. นอกจากนี้ในแต่ละเมธอดที่สร้างขึ้นสามารถเรียกเมธอดอีกเมธอดหนึ่งขึ้นมาใช้งานได้ เรียกว่า hierarchical ตัวอย่างเช่น เมธอด A เรียก เมธอด B ขึ้นมาใช้งาน โดยที่ภายในเมธอด B นี้จะเรียกเมธอด C ขึ้นมาใช้งานด้วย การทางานของโปรแกรมนั้นเมื่อทาเมธอด Cจบ JVM จะกลับมาทาเมธอดต่อ และเมื่อทาเมธอด B จบ JVK ก็จะกลับมาทาเมธอด Aต่อไป
  13. 13. DeepAndDeeper.java เป็นตัวอย่างของเมธอด โดยสร้างสาหรับแสดงผลข้อมูลขึ้นมาสองเมธอด
  14. 14. ผลลัพธ์จากการรันโปรแกรมเป็นดังนี้
  15. 15. แนะนาคลาส Math และเมธอดทางคณิตศาสตร์จากตัวอย่างเมธอดทีได้ศึกษามาเป็นเมธอดที่ไม่มีการคืนค่าออกมา ซึ่งจะใช้คาว่าvoid นาหน้า และเป็นเมธอดที่ไม่มีการส่งพารามิเตอร์เข้าไปในเมธอด โดยหลังชื่อเมธอดจะเป็นวงเล็บเปิดและตามด้วยวงเล็บปิด เมธอดบางประเภทจะต้องมีการรับพารามิเตอร์เข้าไป เมื่อเมธอดทางานจะมีการคืนค่าจากการทาเมธอดออกมาด้วยตัวอย่างเช่น เมธอดสาหรับหาค่ารากที่สองของตัวเลขที่รับเข้าไป เราอาจมองเป็นบล็อกได้ ดังนี้
  16. 16. จากรูปเป็นเมธอดชื่อ sqfrt โดยเมธอดนี้จะรับพารามิเตอร์ที่มีค่าเป็น 16 เข้าไปจากนั้นเมธอดจะคืนค่ารากที่สองซึ่งมีค่าเป็น 4 ออกมา จากรูปเป็นตัวอย่างเมธอดชื่อ area เมธอดนี้จะใช้คานวณหาพื้นที่ของสี่เหลี่ยม โดยรับพารามิเตอร์เข้าไปสองค่าคือ ขนาดความกว้างและขนาดความยาว จากนั้นเมธอดจะคืนค่าพื้นทีของสี่เหลียมออกมาในภาษาจาวามีคลาส Math ซึ่ง ่ เป็น API ของจาวาตัวหนึ่งที่ภายในได้บรรจุเมธอดสาหรับใช้งานทาง คณิตศาสตร์ไว้มากมาย การเรียกใช้งานเมธอดในคลาสนี้ทาได้โดยเรียกชื่อ คลาส ตามด้วยเครื่องหมายจุดแล้วตามด้วยเมธอด อย่างเช่น เมธอด Math.pow ใช้สาหรับหาค่ายกกาลัง เป็นต้น นอกจากนี้ภายในคลาสยัง บรรจุค่าคงที่ต่างๆ ไว้ด้วย การเรียกใช้เมธอดต่างๆ ผู้ใช้จะต้องทราบว่าเมธอด นั้นต้องส่งค่าใดเข้าไป และเมธอดจะคืนค่าใดออกมา การเรียกใช้เมธอดทาง คณิตสาสตร์จะทาได้โดยเรียกชื่อคลาส จากนั้นใส่จุดแล้วตามด้วยชื่อเมธอด พร้อมใส่อาร์กิวเมนต์เข้าไป เช่น
  17. 17. ตัวอย่างของเมธอดต่างๆ มีดังนี้ เมธอด Math .pow เมธอดนี้จะมีอาร์กิวเมนต์แบบ double สองตัว โดยจะนาอาร์กิวเมนต์ตัว แรกไปยกกาลังด้วยอาร์กิวเมนต์ตัวที่สอง เช่น จะเป็นการหาค่าของ 4.0 ยกกาลัง 2.0 หรือถ้าหากต้องการหาค่า 3 เท่าของ 6 ยกกาลัง 3 หาได้ดังนี้
  18. 18. จะเป็นการหาค่าของ 4.0 ยกกาลัง 2.0 หรือถ้าหากต้องการหาค่า 3 เท่าของ6ยกกาลัง 3 หาได้ดังนี้ เมธอด Math.sqrt เมธอดนี้จะรับค่าอาร์กิวเมนต์แบบdoble เข้าไปหนึ่งตัว จากนั้นจะคืนค่ารากที่ สองของอาร์กิวเมนต์กลับออกมา เช่น จะได้คาตอบออกมาเป็น 3.0
  19. 19. เมธอดMath.randomเมธอดนี้ไมมีค่าอาร์กิวเมนต์ เมื่อเรียกใช้เมธอดนี้โปรแกรมจะสุ่มตัวเลขระหว่าง 0 ถึง1 ออกมาสาหรับอาร์กิวเมนต์ที่ส่งเข้าไปในเมธอดอาจอยู่ในรูปของค่าคงที่ นิพจน์หรือตัวแปรก็ได้ เมื่อเมธอดทางานยังสามารถนาไปเป็นอาร์กิวเมนต์ให้กับเมธอดอื่นๆได้อีกด้วย เช่น การใช้งานเมธอดผู้เขียนโปรแกรมจะต้องทราบด้วยว่าเมธอดนั้นๆต้องป้อน อาร์กิวเมนต์ที่เป็นข้อมูลประเภทใดเข้าไป ป้อนเข้าไปกี่ตัว และเมื่อเมธอด ทางานจะคืนค่าข้อมูลชนิดใดออกมา
  20. 20. MathDemo.javaเป็นตัวอย่างการใช้เมธอดในคลาส Math เมื่อรันโปรแกรมผลลัพธ์ที่ได้ จะเป็นดังนี้ สาหรับการใช้เมธอดRandom หรับสุ่มคัวเลขนั้นโปรแกรมจะคืนค่าระหว่าง0.0 ถึง 1.0 ออกมาตัวอย่างเป็นการวนลูปสุ่มตัเลขขึ้นมาจานวน 10 ครั้ง โดยกาสุ่ม แต่ละครั้งจะได้ค่าต่างกัน
  21. 21. TenRandomNumber.java . แสดงการสุ่มเลขจานวน 10 ครั้งเมื่อรันโปรแกรมจะได้ผลลัพธ์ดังนี้ จากผลลัพธ์การรันโปรแกรมจะพบว่าค่าตัวเลขที่ออกมาจะเป็นเลขทศนิยม แต่ ถ้าหากต้องการสุ่มเลขออกมาให้เป็นเลขจานวนเต็มก็ทาได้โดยการเขียน โปรแกรมเพิ่มเติม เช่น ถ้าหากต้องการเขียนโปรแกรมสุ่มการทอยลูกเต๋า ซึ่ง ต้องการค่าตัวเลขในช่วง 1 ถึง 6 สามารถทาได้ดังขั้นตอนต่อไปนี้
  22. 22. ใช้เมธอด random สุ่มค่ามาเก็บในตัวแปร rค่าของตัวแปร r จะได้อยู่ระหว่าง 0.0 ถึง 1.0 ดังนั้นจะต้องปรับค่าให้มีค่ามากขึ้นโดยนา 6.0 ไปคูณกับค่าที่สุ่มได้ แล้วปรับค่าให้อยู่ในช่วง 1.0 ถึง 7.0 ดังนี้ และในการเขียนโปรแกรมจะต้องให้อาร์กิวเมนต์พุตออกมาเป็นเลข จานวนเต็ม ดังนั้นเขียนคาสั่งได้ดังนี้
  23. 23. การส่งค่าอาร์กิวเมนต์ของเมธอด เราสามารถสร้างเมท็อดที่มีการรับค่าจากผู้เรียกเพื่อกาหนดพฤติกรรมการทางานของเมท็อดนั้น ๆ ค่าที่ถูกส่งไปนี้เรียกว่า อาร์กิวเมนต์ (argument) ส่วนเมท็อดที่ถูกเรียกจะรับค่าเหล่านี้ผ่านมาทางพารามิเตอร์ (parameter) ซึ่งถูกนิยามไว้ในส่วน parameter_list ของการประกาศเมท็อด เมท็อดแต่ละอันสามารถถูกประกาศให้มีพารามิเตอร์ได้ตั้งแต่ศูนย์ตัวหรือมากกว่า โดยพารามิเตอร์แต่ละตัวจะต้องมีรูปแบบข้อมูลกากับไว้เสมอ และอาร์กิวเมนต์ที่ใช้ในขณะเรียกใช้งานเมท็อดจะต้องมีรูปแบบข้อมูลที่ตรงกัน เช่น เมท็อด PrintCharLine ด้านล่างนี้ดัดแปลงมาจากเมท็อด PrintLine เมท็ อดใหม่นี้ กาหนดให้มีพารามิเตอร์สองตัว คือ c เป็นชนิด char และ len เป็น ชนิด int โดยที่พารามิเตอร์ c ใช้ สาหรับระบุอักขระที่จะพิมพ์ออกทางจอภาพ ) ไม่ได้พิมพ์เพียงแค่ดาวอีกต่อไป (และ len ใช้ระบุจานวนอักขระที่ต้องการ พิมพ์ในหนึ่งบรรทัด
  24. 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. 25. จากโปรแกรมข้างต้น การเรียกใช้เมท็อด PrintCharLine ครั้งแรกภายในเมท็อด Main ใน บรรทัดที่ 10 มีอาร์กิวเมนต์เป็น o และ 10 ซึ่งเมท็อด PrintCharLine จะรับค่าอาร์กิวเมนต์นี้เข้ามาอยู่ในพารามิเตอร์c และ len ตามลาดับ ดังนั้นจะเห็นว่าบรรทัดที่ 4 และ 5 จะมีผลทาให้โปรแกรมพิมพ์อักขระ o ออกทางหน้าจอเป็นจานวน 10 ตัว ในทานองเดียวกัน การเรียกใช้เมท็อด PrintCharLine ในบรรทัดที่ 11 จะมีผลทาให้โปรแกรมพิมพ์อักขระ x ออกทางหน้าจอเป็นจานวน 20 ตัว
  26. 26. 4.4 เมธอดที่มีการส่งค่ากลับจากเมธอด showSumในตัวอย่างที่ผ่านมาแสดงผลการบวกจะเขียนไว้ในเมธอดโดยตรง ซึ่งเมธอดนั้นจะไม่มีการส่งค่ากลับ ถ้าหากดูในส่วนหัวของเมธอดจะเห็นว่ามีคาว่า void ประกอบอยู่ เราสามารถนาเมธอดนี้มาสร้างเป็นเมธอดที่มีการส่งค่ากลับได้ โดยใช้คาว่า return ในการส่งค่ากลับมาให้ชื่อเมธอด โดยประเภทของข้อมูลที่ส่งกลับมาจะต้องประกาศไว้ในส่วนหัวของเมธอดด้วย ถ้าหากนาเมธอด showSumมาปรับปรุงจะได้ดังนี้
  27. 27. การเรียกใช้เมธอดแบบมีการส่งค่ากลับจะคล้ายกับการเรียกเมธอดที่ไม่มีการส่งค่า แต่เมธอดประเภทนี้จะมีค่าข้อมูลอยู่มนชื่อเมธอดด้วย ดังนั้นจะต้องสร้างตัวแปรขึ้นมาสาหรับรับข้อมูลที่ถูกส่งกลับมาด้วย ตัวอย่างเช่น ประกาศตัวแปรชื่อ total ให้เป็นข้อมูลประเภท double ซึ่งเป็นข้อมูลประเภทเดียวกับที่เมธอดส่งกลับ มารับข้อมูล เมื่อเขียนสเตตเมนต์แล้วเรียกใช้เมธอดก็จะมีข้อมูลส่งกลับมา
  28. 28. นอกจากนี้ ถ้าหากต้องการให้ส่งค่า 3 กับค่า 4 ให้กับเมธอด showSumแล้วต้องการให้แสดงผลบวกออกมาจะเขียนได้ดังนี้ในการเขียนเมธอดที่มีการส่งค่ากลับ ค่าที่ส่งกลับมาจะเขียนไว้หลังคาว่า return ซึ่งอาจเป็นตัวแปรตัวเดียวหรือนิพจน์ที่มีการประมวลผลก็ได้ ตัวอย่าง จงสร้างเมธอดชื่อ Add โดยให้เมธอดนี้รับค่าอาร์กิวเมนต์ที่เป็นเลขจานวนเต็มสองค่าเข้าไป แล้วคืนผลบวกของอาร์กิวเมนต์ทั้งสองออกมาจากตัวอย่างนี้ค่าของข้อมูลที่ถูกส่งกลับมาจะเขียนเป็นนิพจน์ไว้หลังคาว่า return
  29. 29. ตัวอย่าง จงเขียนเมธอดสาหรับแปลงหน่วยอุณหภูมิจากฟาเรนไฮนต์เป็นองศาเซลเซียสวิธีทา ความสัมพันธ์ระหว่างองศาฟาเรนไฮต์ กับองศาเซลเซียสคือ องศาเซลเซียส = (องศาเซลเซียส-32)/1.8ดังนั้นสามารถเขียนเมธอดได้ดังนี้ เมธอดที่สร้างขึ้นนี้จะรับค่าอาร์กิวเมนต์ซึ่งเป็นองศาฟาเรนไฮต์และเป็นข้อมูลแบบ double เมื่อเมธอดทางานจะคืนค่าเป็นองศาเซลเซียสซึ่งเป็นข้อมูลแบบ double ออกมาตัวอย่าง จงเขียนเมะอดสาหรับแปลงหน่วยอุณหภูมิจากองศาเซลเซียสเป็นองศาฟาเรนไฮต์วิธีทา สามารถเขียนเป็นเมธอดได้ดังนี้
  30. 30. การส่งค่ากลับแบบบูลีน เมธอดอีกชนิดหนึ่งที่พบมากในการเขียนโปรแกรมคือ เมธอดที่มีการส่งค่ากลับแบบบูลีน โดยค่าที่ส่งกลับมาจะมีสองค่าเท่านั้น คือ จริง(true) กับเท็จ(false) ซึ่งจะใช้คาว่าboolean ที่ส่วนหัว เมธอดลักษณะนี้มักใช้ในการตรวจสอบเงื่อนไขต่างๆ โดยส่งข้อมูลที่ต้องการตรวจสอบเป็นอาร์กิวเมนต์เข้าไป ตัวอย่างเช่น ถ้าหากต้องการตรวจสอบว่าตัวเลขที่กาลังสนใจอยู่ เป็นตัวเลขในช่วง 1 ถึง 100 หรือไม่จะเขียนเมธอดได้ดังนี้เราสามารถนาเมธอด isValidนี้ไปประยุกต์ใช้รมกับคาสั่งเลือกทาในโปรแกรมได้อย่างเช่น ถ้าต้องการเขียนโปรแกรมทดสอบข้อมูล value มีค่าอยู่ในช่วงที่กาหนดหรือไม่จะเขียนสเตตเมนต์ได้ดังนี้
  31. 31. จากตัวอย่างโปรแกรมต่างๆที่ได้ศึกษามาจะเห้ฯได้ว่าการสร่างเมธอดขึ้นมานั้นจะรวมอยู่ในโปรแกรมที่มีคลาสหลักเพียงคลาสเดียว โดยเมธอดที่สร้างขึ้นจะอยู่หลังเมธอด main แต่การสร้างเมธอดนี้สามารถนาไปไว้หน้าเมธิดmain ได้ ดังตัวอย่างโปรแกรมที่ 4.8 โปรแกรมที่ 4.8 เป็นโปรแกรมหาค่าฟังก์ชั่นของ f(x) = x2+5 โดยให้ x มีค่าตั้งแต่0 ถึง 10 โดยเมธอดที่สร้างขึ้นมานี้จะเป็นเมธอดที่มีการรับค่าอาร์กิวเมนต์เข้ามาและมีการส่งค่ากลับ
  32. 32. ผลลัพธ์การรันโปรแกรมจะเป็นดังนี้ เมธอดที่มีการส่งค่ากลับคืนมานั้นสามารถมี return มากกว่าหนึ่งจุดได้แต่เมื่อโปรแกรมทางานแล้วจะต้องส่งค่ากลับมาเพียงค่าเดียวเท่านั้น
  33. 33. โปรแกรมที่ 4.9 ตัวอย่างนี้จะเป็นตัวตรวจสอบว่าตัวเลขที่ป้อนเข้าไปเป็นจานวนเฉพาะหรือไม่ ซึ่งตัวเลขที่เป็นจานวนเฉพาะคือตัวเลขจานวนเต็มตั้งแต่ 2 ขึ้นไป ที่มีเฉพาะเลข 1และตัวมันเองเท่านั้นที่หารลง ตัวอย่างโปรแกรมนี้จะสร้างเมธอดชื่อว่า isPrime ที่จะรับค่าตัวเลขเข้าไป ถ้าหากตัวเลขนั้นเป็นจานวนเฉพาะจะคืนค่าที่เปนจริงออกมา โดยเมธอดนี้จะมี return อยู่ 5 ตาแหน่ง
  34. 34. ถ้าหากรันโปรแกรมแล้วป้อนค่า 6317 และ 7163 เข้าไป ผลลัพธ์จะเป็นดังนี้
  35. 35. 4.5 ตัวแปรแบบ Local ตัวแปรที่ประกาศใช้ในเมธอดเรียกว่าตัวแปรแบบท้องถิ่น หรือตัวแปรแบโลคอล(local variable) โดยจะใช้ได้เฉพาะสเตตเมนต์ในเมธอดเท่านั้น สเตตเมนต์ต่างๆที่อยู่นอกเมธอดที่ประกาศตัวแปรนี้จะไม่สามารถเรียกใช้ตัวแปรนี้ได้การประการตัวแปรแบบโลคอลนี้ จะทาให้เมธอดหลายๆเมธอดใช้ชื่อตัวแปรเดียวกันได้ ดังตัวอย่างโปรแกรมที่ 4.10 โดยโปรแกรมนี้จะให้เมธอด main()เรียกใช้เมะอดที่สร้างขึ้นสองเมธอดคือ Phuket และrayongโดยทั้งสองเมธอดนี้จะมีตัวแปรโลคอลชื่อเดียวกันคือ birds โปรแกรมที่ 4.10LocalVars.java
  36. 36. ผลลัพธ์การรันโปรแกรมจะเป็นดังนี้จากตัวอย่างโปรแกรมที่ 4.10 จะพบว่าแม้ตัวแปรในเมธอดที่สร้างขึ้นจะมีชื่อเดียวกัน โดยแต่ละเมธอดมีการกาหนดค่าให้กับตัวแปรเป็นค่าที่ไม่เท่ากัน ถ้าสังเกตจากผลลัพธ์จะพบว่าตัวแปรทั้งสองไม่เกี่ยวข้องกัน การประกาศตัวแปรแบบโลคอลนี้ เมื่อเมธอดถูกเรียกใช้มันจะสร้างหน่วยความจาขึ้นมาสาหรับเก็บตัวแปรนั้น แต่เมื่อเมธอดทางานเสร็จสิ้นลงหน่วยความจาสาหรับตัวแปรนั้นจะถูกยกเลิกไป
  37. 37. สาหรับตัวอย่างโปรแกรมที่ 4.11 จะประกาศตัวแปร x เอาไว้ในเมธอด mainและประกาศตัวแปรชื่อ x อีกตัวหนึ่งไว้ในเมธอด one() ซึ่งก็จะไม่ใช่ตัวแปร xตัวเดียวกัน เมื่อในเมธอด main กาหนดค่าให้กับตัวแปร x และเมธอด one ถูกเรียกใช้ ก็จะไม่ทาให้ตัวแปร x ในเมธอด main เปลี่ยยนแปลงไป โปรแกรมที่ 4.11Local2.java ตัวอย่างโปรแกรมแสดงการใช้ตัวแปรแบบโลคอล เมื่อรันโปรแกรมผลลัพธ์ที่ได้จะเป็นดังนี้
  38. 38. 4.6 โอเวอร์โหลดเมธอด (Overloading Method) จากตัวอย่างการสร้างเมธอดที่ได้ศึกษาทั้งหมดจะพบว่าเมธอดต่างๆ จะรวมอยู่ในคลาสเดียวกันและเราสามารถสร้างเมธอดขึ้นเองได้หลายเมธอด ถ้าหากเมธอดที่สร้างขึ้นมีหลายเมธอดและมีเมธอดที่มีชื่อซ้ากันแต่มีการส่งอาร์กิวเมนต์ต่างกัน และมีจานวนพารามิเตอร์ในการรับข้อมูลไม่เท่ากัน จะเรียกเมะอดประเภทนี้ว่าโอเวอร์โหลดเมธอด (Overload Method)เมื่อเมธอดถูกเรียกใช้ โปรแกรมจะพิจารณาว่าควรใช้เมธอดใด ดังโปรแกรมที่ 4.12 โปรแกรมที่ 4.12เป็นโปรแกรมตัวอย่างโอเวอร์โหลดเมธอด โดยสร้างเมธอดหาค่าผลรวมของตัวเลขขึ้นมา
  39. 39. ผลลัพธ์การรันโปรแกรมจะเป็นดังนี้
  40. 40. โปรแกรมที่ 4.13 CalGrade.java จะเป็นการสร้างเมธอดสาหรับคานวณเกรดขึ้นมา โดยจะรับค่าคะแนนเป็นอาร์กิวเมนต์ส่งไปให้เมธอดเมื่อมีการเรียกใช้เมธอดก็จะคืนค่าเกรดที่ได้กลับมาโดยการคานวณเกรดนั้นจะใช้คาสั่งตัดสินใจเป็นตัวคิดว่าคะแนนนั้นๆควรได้เกรดใด โดยเมธอดที่สร้างขึ้นจะคืนค่าเป็นตัวอักขระ จากโปรแกรมจะเห็นว่าเมื่อเรียกใช้เมธอดคานวณ เกรดจะส่งค่าคะแนนเป็น 75 เข้าไป ผลลัพธ์ที่ ได้จะเป็นดังนี้
  41. 41. โปรแกรมที่ 4.14 BarChart.java ตัวอย่างนี้เป็นการสร้างเมธอดชนิดที่ไม่มีการคืนค่ากลับชื่อว่า Bar โดยเมธอดนี้จะรับค่าอาร์กิวเมนต์เป็นตัวเลขเข้าไป แล้วจะแสดงเครื่องหมาย* ตามจานวนตัวเลขที่รับเข้าไป ในลักษณะกราฟแท่งในแนวนอน
  42. 42. เมื่อรันโปรแกรมและป้อนค่า 24 เข้าไป ผลลัพธ์ที่ได้จะเป็นดังนี้สรุป ในการเขียนโปรแกรมโดยทั่วๆไปนั้น จะมีเมธอดที่ให้คอมพิวเตอร์ทางานอย่างใดอย่างหนึ่ง ถ้าหากมีเมธอดหลายๆเมธอด เราสามารถรวมเมธอดนี้เป็นกลุ่มใหม่ได้ ในการสร้างเมธอดนี้ผู้เขียนโปรแกรมจะต้องพิจารณาว่าเมธอดที่สร้างขึ้นมีการส่งค่าอาร์กิวเมนต์เข้าไปหรือไม่ และเมธอดนี้จะมีการส่งค่ากลับออกมาหรือไม่ ถ้ามีค่าที่ส่งกลับมาเป็นข้อมูลประเภทใดในโปรแกรมหนึ่งๆสามารถมีเมธอดชื่อเดียวกันได้ แต่มีการทางานที่ต่างกัน เมธอดลักษณะนี้เรียกว่า โอเวอร์โหลดเมธอด
  43. 43. จัดทาโดย1. น.ส. จารุภา พรหมมงคล เลขที่ 282. น.ส. จุฑามาศ อัครเดชพงศา เลขที่ 293. น.ส. หทัยชนก ห้วยหงส์ทอง เลขที่ 324. น.ส. ศิริวรรณ พงศโอสธี เลขที่ 335. น.ส. สิริกาญจน์ พานะกิจ เลขที่ 346. นาย จิตรเทพ สกุลธนาศร เลขที่ 5 ชั้น ม. 6/2

×