43
เเเเเ (method)

เมธอด ชั้น ม 6 ห้อง 2

Embed Size (px)

Citation preview

Page 1: เมธอด ชั้น ม  6 ห้อง 2

เมธอด (method)

Page 2: เมธอด ชั้น ม  6 ห้อง 2

                Method   

 เป็นระเบี�ยบีวิ�ธ�ในการทำ�างาน  โดยการจั�ดกลุ่��มข้�อม ลุ่สร�างเป็น Function ย�อยภายในโป็รแกรมเพื่%&อง�ายต่�อการบีร�หารจั�ดการกลุ่��มข้�อม ลุ่ ซึ่*&งม�ทำ� +ง Method ทำ�&คุ�ณสร�างข้*+นใช้�งานเอง  แลุ่ะ Method  ทำ�& Java น�+นม�อย �แลุ่�วิ  รอเพื่�ยงการถู กเร�ยกใช้�

Page 3: เมธอด ชั้น ม  6 ห้อง 2

โครงสร�างของเมธอด

จัากโคุรงสร�างจัะเห0นวิ�าโป็รแกรมหน*&งอาจัม�หลุ่าย Class แลุ่ะในหน*&ง Class จัะม�ก�& Method ก0ได�แต่�ใน Class หลุ่�ก (Class ทำ�&ม� public น�าหน�า) จัะต่�องม� main Method เสมอ

Page 4: เมธอด ชั้น ม  6 ห้อง 2

ร�ปแบบ

Method modifiers เป็นส�วินทำ�&บีอกวิ�าเมธอดน�+สามารถูเร�ยกใช้�ได�ในระด�บีใด จัะป็ระกอบีด�วิยpublic staticReturn_ Type ส�วินน�+จัะบีอกวิ�าเม%&อเมธอดน�+ถู กเร�ยกใช้�แลุ่ะจัะม�การสงคุ�ากลุ่�บีมาหร�อไม� ถ้�าม�จะส�งกลั�บเป�นข�อม�ลัประเภทใด ถ้�าไม�ม�ส�งค�ากลั�บจะใช้�ค$าว่�า voidMethodName เป็นช้%&อข้องเมธอดparameter เป็นต่�วิแป็รทำ�&ใช้�ส�งข้�อม ลุ่เข้�าไป็ในเมธอด ถู�าม�หลุ่ายต่�วิแป็รจัะใช้�เคุร%&องหมาย (;)คุ�&นระหวิ�างต่�วิแป็รreture เป็นส�วินทำ�&ใช้�ส�งคุ�ากลุ่�บีให�ก�บีช้%&อเมธอด

Page 5: เมธอด ชั้น ม  6 ห้อง 2

 ประเภทของเมธอด (Type of Method)     1. Static Method - เมธอดข้องคุลุ่าส เร�ยกช้%&อได�ทำ�นทำ�2. Instance Method - เมธอดพื่ฤต่�กรรมทำ�&วิไป็ในคุลุ่าส3. Constructor Method -  เมธอดทำ�&ม�ช้%&อเด�ยวิก�บีคุลุ่าส4. Overloading Method - ช้%&อเหม%อนก�น แต่�จั�านวินหร%อช้น�ดต่�วิแป็รต่�างก�น5. Overriding Method - ช้%&อเหม%อนก�นในคุลุ่าสแม�แลุ่ะลุ่ ก แต่�ทำ�างานต่ามคุลุ่าสลุ่ ก1. Static Method ม�คุ�าวิ�า static น�าหน�า เป็นเมธอดข้องคุลุ่าส สามารถูเร�ยกใช้�ต่�วิแป็รได�ทำ�นทำ� โดยไม�ต่�องม�การสร�างอ0อบีเจั0กต่3ข้*+นมาข้*+นมาเพื่%&อเร�ยกใช้�การเร�ยกใช้�:อย �ในคุลุ่าสเด�ยวิก�น: method(argument);อย �ต่�างคุลุ่าส: class.method(argument);ถู�าเป็นต่�วิแป็ร ก0เร�ยกช้%&อ variable ได�เลุ่ย

  

Page 6: เมธอด ชั้น ม  6 ห้อง 2

  2. Instance Method เมธอดทำ�&วิไป็ทำ�&บีอกพื่ฤต่�กรรมในคุลุ่าสหน*&งๆ ต่�องม�การสร�างอ0อบีเจั0กต่3ข้*+นมาก�อนจั*งจัะเร�ยกใช้�ได� แลุ่ะคุ�าข้องข้�อม ลุ่จัะเป็ลุ่�&ยนไป็ต่ามอ0อบีเจั0กต่3ทำ�&สร�างข้*+นการเร�ยกใช้�: object.method(argument);object.attribute 3. Constructor Method เมธอดทำ�&ม�ช้%&อเด�ยวิก�บีคุลุ่าส เม%&ออ0อบีเจั0กต่3ใดๆถู กสร�างข้*+นมาแลุ่�วิ เมธอดน�+จัะถู กเร�ยกข้*+นมาเป็นเมธอดแรกทำ�นทำ� (ม�กใช้�คุ�าทำ�&เร�&มต่�นการทำ�างานข้องเคุร%&อง หร%อเรามาก�าหนดคุ�าเร�&มต่�นเอาเอง) constructor ทำ�&สร�างข้*+นมาอ�ต่โนม�ต่�จัะไม�ม�การร�บีคุ�าพื่าราม�เต่อร3 แลุ่ะต่�องไม�ม�คุ%นคุ�าเป็น voidClass object = new Class();

Page 7: เมธอด ชั้น ม  6 ห้อง 2

  4. Overloading Method เมธอดทำ�&ม�ช้%&อเหม%อนก�น แต่�ร�บีอาก�วิเมนต่3ช้น�ดต่�างก�นหร%อจั�านวินอาก�วิเมนต่3ไม�เทำ�าก�น (overload constructor)

Overloading Methodpublic int Print(int idbook){...}public String Print(int bookname){...}Overloading Constructorpublic Circle() {...}public Circle(int radius) {...}Output จัะแสดง Student

Page 8: เมธอด ชั้น ม  6 ห้อง 2

  5. Overriding Method เมธอดทำ�&ม�ช้%&อแลุ่ะช้น�ดต่�วิแป็รเหม%อนก�น แต่�เข้�ยนโป็รแกรมในลุ่�กษณะทำ�&เมธอดหน*&งอย �ในคุลุ่าสแม� อ�กเมดธอดหน*&งอย �ในคุลุ่าสลุ่ ก ซึ่*&งเม%&อร�บีคุ�ามาเหม%อนก�น โป็รแกรมจัะทำ�างานต่ามคุ�าส�&งทำ�&อย �ในเมธอดข้องคุลุ่าสลุ่ กโดยอ�ต่โนม�ต่� (Inheritance) class Person {    public void print() {System.out.print("People");} } class Student extend Person {    public void print() {System.out.print("Student");} }

Page 9: เมธอด ชั้น ม  6 ห้อง 2

  การเร�ยกใช้�เมธอดโป็รแกรมทำ�กโป็รแกรมเมธอดทำ�ช้%&อวิ�า main()จัะถู กเร�ยกใช้�โยอ�ต่โนม�ต่�เม%&อเร�&มต่�นทำ�าโป็รแกรมส�าหร�บีเมธอดทำ�&เป็นแบีบี static น�+นถู�าหากต่�องการใช้�งานเมธอดก0สามารถูเร�ยกช้%&อเมธอดข้*+นมาใช้�งานได�ทำ�นทำ� ถู�าหากเมธอดทำ�&เร�ยกใช้�ต่�องม�พื่าราม�เต่อร3เข้�าไป็ด�วิย การเร�ยกใช้�เมธอดจัะต่�องระบี�คุ�าพื่าราม�เต่อร3ด�วิย ต่�วิอย�างเช้�น

เป็นการเร�ยกใช้�เมธอด displayMessage() ซึ่*&งไม�ต่�องม�กรส�งพื่าราม�เต่อร3เข้�าไป็ เม%&อโป็รแกรมทำ�างานมาถู*งบีรรทำ�ดน�+ โป็รแกรมจัะโดดไป็ทำ�างานย�งเมธอดทำ�&สร�างข้*+นทำ�นทำ�

SimpleMethod.java เป็นโป็รแกรมทำ�เร�ยกใช้�เมธอดอย�างง�ายในเมธอดหน*&งๆสามารถูเร�ยกข้*+นมาใช้�งานได�หลุ่ายคุร�+ง เช้�น

Page 10: เมธอด ชั้น ม  6 ห้อง 2

 

ผลุ่ลุ่�พื่ธ3จัากการร�นโป็รแกรมจัะเป็นด�งน�+

Page 11: เมธอด ชั้น ม  6 ห้อง 2

  จัากโป็รแกรม เร�&มต่�นจัะทำ�าเมธอด main ก�อน เม%&อม�การเร�ยกช้%&อเมธอดทำ�&สร�างข้*+นโป็รแกรมจัะกระโดดไป็ย�งเมธอดทำ�สร�างข้*+น แลุ่�วิทำ�าไป็จันจับี จัากน�+นเมธอดจัะกลุ่�บีมาทำ�างานทำ�&เมธอดหลุ่�กต่�อไป็

Page 12: เมธอด ชั้น ม  6 ห้อง 2

  นอกจัากน�+ในแต่�ลุ่ะเมธอดทำ�&สร�างข้*+นสามารถูเร�ยกเมธอดอ�กเมธอดหน*&งข้*+นมาใช้�งานได� เร�ยกวิ�า hierarchical ต่�วิอย�างเช้�น เมธอด A เร�ยก เมธอด B ข้*+นมาใช้�งาน โดยทำ�&ภายในเมธอด B น�+จัะเร�ยกเมธอด C ข้*+นมาใช้�งานด�วิย การทำ�างานข้องโป็รแกรมน�+นเม%&อทำ�าเมธอด C จับี JVM จัะกลุ่�บีมาทำ�าเมธอดต่�อ แลุ่ะเม%&อทำ�าเมธอด B จับี JVK ก0จัะกลุ่�บีมาทำ�าเมธอด A ต่�อไป็

Page 13: เมธอด ชั้น ม  6 ห้อง 2

  DeepAndDeeper.java เป็นต่�วิอย�างข้องเมธอด โดยสร�างส�าหร�บีแสดงผลุ่ข้�อม ลุ่ข้*+นมาสองเมธอด

Page 14: เมธอด ชั้น ม  6 ห้อง 2

 

ผลุ่ลุ่�พื่ธ3จัากการร�นโป็รแกรมเป็นด�งน�+

Page 15: เมธอด ชั้น ม  6 ห้อง 2

  แนะน$าคลัาส Math แลัะเมธอดทางคณิ)ตศาสตร,

จัากต่�วิอย�างเมธอดทำ�ได�ศึ*กษามาเป็นเมธอดทำ�&ไม�ม�การคุ%นคุ�าออกมา ซึ่*&งจัะใช้�คุ�าวิ�า void น�าหน�า แลุ่ะเป็นเมธอดทำ�&ไม�ม�การส�งพื่าราม�เต่อร3เข้�าไป็ในเมธอด โดยหลุ่�งช้%&อเมธอดจัะเป็นวิงเลุ่0บีเป็8ดแลุ่ะต่ามด�วิยวิงเลุ่0บีป็8ด เมธอดบีางป็ระเภทำจัะต่�องม�การร�บีพื่าราม�เต่อร3เข้�าไป็ เม%&อเมธอดทำ�างานจัะม�การคุ%นคุ�าจัากการทำ�าเมธอดออกมาด�วิย ต่�วิอย�างเช้�น เมธอดส�าหร�บีหาคุ�ารากทำ�&สองข้องต่�วิเลุ่ข้ทำ�&ร �บีเข้�าไป็ เราอาจัมองเป็นบีลุ่0อกได� ด�งน�+

Page 16: เมธอด ชั้น ม  6 ห้อง 2

 จัากร ป็เป็นเมธอดช้%&อ sqfrt โดยเมธอดน�+จัะร�บีพื่าราม�เต่อร3ทำ�&ม�คุ�าเป็น 16 เข้�าไป็ จัากน�+นเมธอดจัะคุ%นคุ�ารากทำ�&สองซึ่*&งม�คุ�าเป็น 4 ออกมา

จัากร ป็เป็นต่�วิอย�างเมธอดช้%&อ area เมธอดน�+จัะใช้�คุ�านวิณหาพื่%+นทำ�&ข้องส�&เหลุ่�&ยม โดยร�บีพื่าราม�เต่อร3เข้�าไป็สองคุ�าคุ%อ ข้นาดคุวิามกวิ�างแลุ่ะข้นาดคุวิามยาวิ จัากน�+นเมธอดจัะคุ%นคุ�าพื่%+นทำ�&ข้องส�&เหลุ่�ยมออกมาในภาษาจัาวิาม�คุลุ่าส Math ซึ่*&งเป็น API ข้องจัาวิาต่�วิหน*&งทำ�&ภายในได�บีรรจั�เมธอดส�าหร�บีใช้�งานทำางคุณ�ต่ศึาสต่ร3ไวิ�มากมาย การเร�ยกใช้�งานเมธอดในคุลุ่าสน�+ทำ�าได�โดยเร�ยกช้%&อคุลุ่าส ต่ามด�วิยเคุร%&องหมายจั�ดแลุ่�วิต่ามด�วิยเมธอด อย�างเช้�น เมธอด Math.pow ใช้�ส�าหร�บีหาคุ�ายกก�าลุ่�ง เป็นต่�น นอกจัากน�+ภายในคุลุ่าสย�งบีรรจั�คุ�าคุงทำ�&ต่�างๆ ไวิ�ด�วิย การเร�ยกใช้�เมธอดต่�างๆ ผ �ใช้�จัะต่�องทำราบีวิ�าเมธอดน�+นต่�องส�งคุ�าใดเข้�าไป็ แลุ่ะเมธอดจัะคุ%นคุ�าใดออกมา การเร�ยกใช้�เมธอดทำางคุณ�ต่สาสต่ร3จัะทำ�าได�โดยเร�ยกช้%&อคุลุ่าส จัากน�+นใส�จั�ดแลุ่�วิต่ามด�วิยช้%&อเมธอดพื่ร�อมใส�อาร3ก�วิเมนต่3เข้�าไป็ เช้�น

Page 17: เมธอด ชั้น ม  6 ห้อง 2

 

ต่�วิอย�างข้องเมธอดต่�างๆ ม�ด�งน�+เมธอด Math .pow เมธอดน�+จัะม�อาร3ก�วิเมนต่3แบีบี double สองต่�วิ โดยจัะน�าอาร3ก�วิเมนต่3ต่�วิแรกไป็ยกก�าลุ่�งด�วิยอาร3ก�วิเมนต่3ต่�วิทำ�&สอง เช้�นจัะเป็นการหาคุ�าข้อง 4.0 ยกก�าลุ่�ง 2.0 หร%อถู�าหากต่�องการหาคุ�า 3 เทำ�าข้อง6 ยกก�าลุ่�ง 3 หาได�ด�งน�+

Page 18: เมธอด ชั้น ม  6 ห้อง 2

 

เมธอด Math.sqrt

เมธอดน�+จัะร�บีคุ�าอาร3ก�วิเมนต่3แบีบีdoble เข้�าไป็หน*&งต่�วิ จัากน�+นจัะคุ%นคุ�ารากทำ�&สองข้องอาร3ก�วิเมนต่3กลุ่�บีออกมา เช้�น

จัะเป็นการหาคุ�าข้อง 4.0 ยกก�าลุ่�ง 2.0 หร%อถู�าหากต่�องการหาคุ�า 3 เทำ�าข้อง6 ยกก�าลุ่�ง 3 หาได�ด�งน�+

จัะได�คุ�าต่อบีออกมาเป็น 3.0

Page 19: เมธอด ชั้น ม  6 ห้อง 2

  เมธอดMath.randomเมธอดน�+ไมม�คุ�าอาร3ก�วิเมนต่3 เม%&อเร�ยกใช้�เมธอดน�+โป็รแกรมจัะส��มต่�วิเลุ่ข้ระหวิ�าง 0 ถู*ง 1 ออกมาส�าหร�บีอาร3ก�วิเมนต่3ทำ�&ส�งเข้�าไป็ในเมธอดอาจัอย �ในร ป็ข้องคุ�าคุงทำ�& น�พื่จัน3 หร%อต่�วิแป็รก0ได� เม%&อเมธอดทำ�างานย�งสามารถูน�าไป็เป็นอาร3ก�วิเมนต่3ให�ก�บีเมธอดอ%&นๆได�อ�กด�วิย เช้�น

การใช้�งานเมธอดผ �เข้�ยนโป็รแกรมจัะต่�องทำราบีด�วิยวิ�าเมธอดน�+นๆต่�องป็9อนอาร3ก�วิเมนต่3ทำ�&เป็นข้�อม ลุ่ป็ระเภทำใดเข้�าไป็ ป็9อนเข้�าไป็ก�&ต่�วิ แลุ่ะเม%&อเมธอดทำ�างานจัะคุ%นคุ�าข้�อม ลุ่ช้น�ดใดออกมา

Page 20: เมธอด ชั้น ม  6 ห้อง 2

  MathDemo.javaเป็นต่�วิอย�างการใช้�เมธอดในคุลุ่าส Math

เม%&อร�นโป็รแกรมผลุ่ลุ่�พื่ธ3ทำ�&ได�จัะเป็นด�งน�+

ส�าหร�บีการใช้�เมธอดRandom หร�บีส��มคุ�วิเลุ่ข้น�+นโป็รแกรมจัะคุ%นคุ�าระหวิ�าง0.0 ถู*ง 1.0 ออกมาต่�วิอย�างเป็นการวินลุ่ ป็ส��มต่�เลุ่ข้ข้*+นมาจั�านวิน 10 คุร�+ง โดยกาส��มแต่�ลุ่ะคุร�+งจัะได�คุ�าต่�างก�น

Page 21: เมธอด ชั้น ม  6 ห้อง 2

 TenRandomNumber.java . แสดงการส��มเลุ่ข้จั�านวิน 10 คุร�+ง

เม%&อร�นโป็รแกรมจัะได�ผลุ่ลุ่�พื่ธ3ด�งน�+

จัากผลุ่ลุ่�พื่ธ3การร�นโป็รแกรมจัะพื่บีวิ�าคุ�าต่�วิเลุ่ข้ทำ�&ออกมาจัะเป็นเลุ่ข้ทำศึน�ยม แต่�ถู�าหากต่�องการส��มเลุ่ข้ออกมาให�เป็นเลุ่ข้จั�านวินเต่0มก0ทำ�าได�โดยการเข้�ยนโป็รแกรมเพื่�&มเต่�ม เช้�น ถู�าหากต่�องการเข้�ยนโป็รแกรมส��มการทำอยลุ่ กเต่:า ซึ่*&งต่�องการคุ�าต่�วิเลุ่ข้ในช้�วิง 1 ถู*ง 6 สามารถูทำ�าได�ด�งข้�+นต่อนต่�อไป็น�+

Page 22: เมธอด ชั้น ม  6 ห้อง 2

  ใช้�เมธอด random ส��มคุ�ามาเก0บีในต่�วิแป็ร r

คุ�าข้องต่�วิแป็ร r จัะได�อย �ระหวิ�าง 0.0 ถู*ง 1.0 ด�งน�+นจัะต่�องป็ร�บีคุ�าให�ม�คุ�ามากข้*+น โดยน�า 6.0 ไป็คุ ณก�บีคุ�าทำ�&ส��มได� แลุ่�วิป็ร�บีคุ�าให�อย �ในช้�วิง 1.0 ถู*ง 7.0 ด�งน�+

แลุ่ะในการเข้�ยนโป็รแกรมจัะต่�องให�อาร3ก�วิเมนต่3พื่�ต่ออกมาเป็นเลุ่ข้จั�านวินเต่0ม ด�งน�+นเข้�ยนคุ�าส�&งได�ด�งน�+

Page 23: เมธอด ชั้น ม  6 ห้อง 2

 การส�งค�าอาร,ก)ว่เมนต,ของเมธอด

เราสามารถูสร�างเมทำ0อดทำ�&ม�การร�บีคุ�าจัากผ �เร�ยกเพื่%&อก�าหนดพื่ฤต่�กรรมการทำ�างานข้องเมทำ0อดน�+น ๆ คุ�าทำ�&ถู กส�งไป็น�+เร�ยกวิ�า อาร3ก�วิเมนต่3 (argument) ส�วินเมทำ0อดทำ�&ถู กเร�ยกจัะร�บีคุ�าเหลุ่�าน�+ผ�านมาทำางพื่าราม�เต่อร3 (parameter) ซึ่*&งถู กน�ยามไวิ�ในส�วิน parameter_list ข้องการป็ระกาศึเมทำ0อด เมทำ0อดแต่�ลุ่ะอ�นสามารถูถู กป็ระกาศึให�ม�พื่าราม�เต่อร3ได�ต่�+งแต่�ศึ นย3ต่�วิหร%อมากกวิ�า โดยพื่าราม�เต่อร3แต่�ลุ่ะต่�วิจัะต่�องม�ร ป็แบีบีข้�อม ลุ่ก�าก�บีไวิ�เสมอ แลุ่ะอาร3ก�วิเมนต่3ทำ�&ใช้�ในข้ณะเร�ยกใช้�งานเมทำ0อดจัะต่�องม�ร ป็แบีบีข้�อม ลุ่ทำ�&ต่รงก�นเช้�น  เมทำ0อด PrintCharLine ด�านลุ่�างน�+ด�ดแป็ลุ่ง

มาจัากเมทำ0อด PrintLine เมทำ0อดใหม�น�+ ก�าหนดให�ม�พื่าราม�เต่อร3สองต่�วิ คุ%อ c เป็นช้น�ด char แลุ่ะ len เป็นช้น�ด int โดยทำ�&พื่าราม�เต่อร3 c ใช้� ส�าหร�บีระบี�อ�กข้ระทำ�&จัะพื่�มพื่3ออกทำางจัอภาพื่ ) ไม�ได�พื่�มพื่3เพื่�ยงแคุ�ดาวิอ�กต่�อไป็ (แลุ่ะ len ใช้�ระบี�จั�านวินอ�กข้ระทำ�&ต่�องการพื่�มพื่3ในหน*&งบีรรทำ�ด

Page 24: เมธอด ชั้น ม  6 ห้อง 2

  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: }

Page 25: เมธอด ชั้น ม  6 ห้อง 2

 จัากโป็รแกรมข้�างต่�น การเร�ยกใช้�เมทำ0อด PrintCharLine คุร�+งแรกภายในเมทำ0อด Main ใน บีรรทำ�ดทำ�& 10 ม�อาร3ก�วิเมนต่3เป็น 'o' แลุ่ะ 10 ซึ่*&งเมทำ0อด PrintCharLine จัะร�บีคุ�าอาร3ก�วิเมนต่3น�+เข้�ามาอย �ในพื่าราม�เต่อร3c แลุ่ะ len ต่ามลุ่�าด�บี ด�งน�+นจัะเห0นวิ�าบีรรทำ�ดทำ�& 4 แลุ่ะ 5 จัะม�ผลุ่ทำ�าให�โป็รแกรมพื่�มพื่3อ�กข้ระ o ออกทำางหน�าจัอเป็นจั�านวิน 10 ต่�วิ ในทำ�านองเด�ยวิก�น การเร�ยกใช้�เมทำ0อด PrintCharLine ในบีรรทำ�ดทำ�& 11 จัะม�ผลุ่ทำ�าให�โป็รแกรมพื่�มพื่3อ�กข้ระ x ออกทำางหน�าจัอเป็นจั�านวิน 20 ต่�วิ

Page 26: เมธอด ชั้น ม  6 ห้อง 2

4.4 เมธอดท�-ม�การส�งค�ากลั�บจัากเมธอด showSumในต่�วิอย�างทำ�&ผ�านมาแสดงผลุ่การบีวิกจัะเข้�ยนไวิ�ในเมธอดโดยต่รง ซึ่*&งเมธอดน�+นจัะไม�ม�การส�งคุ�ากลุ่�บี ถู�าหากด ในส�วินห�วิข้องเมธอดจัะเห0นวิ�าม�คุ�าวิ�า void ป็ระกอบีอย � เราสามารถูน�าเมธอดน�+มาสร�างเป็นเมธอดทำ�&ม�การส�งคุ�ากลุ่�บีได� โดยใช้�คุ�าวิ�า return ในการส�งคุ�ากลุ่�บีมาให�ช้%&อเมธอด โดยป็ระเภทำข้องข้�อม ลุ่ทำ�&ส�งกลุ่�บีมาจัะต่�องป็ระกาศึไวิ�ในส�วินห�วิข้องเมธอดด�วิย ถู�าหากน�าเมธอด showSumมาป็ร�บีป็ร�งจัะได�ด�งน�+

Page 27: เมธอด ชั้น ม  6 ห้อง 2

การเร�ยกใช้�เมธอดแบีบีม�การส�งคุ�ากลุ่�บีจัะคุลุ่�ายก�บีการเร�ยกเมธอดทำ�&ไม�ม�การส�งคุ�า แต่�เมธอดป็ระเภทำน�+จัะม�คุ�าข้�อม ลุ่อย �มนช้%&อเมธอดด�วิย ด�งน�+นจัะต่�องสร�างต่�วิแป็รข้*+นมาส�าหร�บีร�บีข้�อม ลุ่ทำ�&ถู กส�งกลุ่�บีมาด�วิย ต่�วิอย�างเช้�น ป็ระกาศึต่�วิแป็รช้%&อ total ให�เป็นข้�อม ลุ่ป็ระเภทำ double ซึ่*&งเป็นข้�อม ลุ่ป็ระเภทำเด�ยวิก�บีทำ�&เมธอดส�งกลุ่�บี มาร�บีข้�อม ลุ่ เม%&อเข้�ยนสเต่ต่เมนต่3แลุ่�วิเร�ยกใช้�เมธอดก0จัะม�ข้�อม ลุ่ส�งกลุ่�บีมา

Page 28: เมธอด ชั้น ม  6 ห้อง 2

นอกจัากน�+ ถู�าหากต่�องการให�ส�งคุ�า 3 ก�บีคุ�า 4 ให�ก�บีเมธอด showSumแลุ่�วิต่�องการให�แสดงผลุ่บีวิกออกมาจัะเข้�ยนได�ด�งน�+

ในการเข้�ยนเมธอดทำ�&ม�การส�งคุ�ากลุ่�บี คุ�าทำ�&ส�งกลุ่�บีมาจัะเข้�ยนไวิ�หลุ่�งคุ�าวิ�า return ซึ่*&งอาจัเป็นต่�วิแป็รต่�วิเด�ยวิหร%อน�พื่จัน3ทำ�&ม�การป็ระมวิลุ่ผลุ่ก0ได�

ต�ว่อย�าง จังสร�างเมธอดช้%&อ Add โดยให�เมธอดน�+ร �บีคุ�าอาร3ก�วิเมนต่3ทำ�&เป็นเลุ่ข้จั�านวินเต่0มสองคุ�าเข้�าไป็ แลุ่�วิคุ%นผลุ่บีวิกข้องอาร3ก�วิเมนต่3ทำ�+งสองออกมา

จัากต่�วิอย�างน�+คุ�าข้องข้�อม ลุ่ทำ�&ถู กส�งกลุ่�บีมาจัะเข้�ยนเป็นน�พื่จัน3ไวิ�หลุ่�งคุ�าวิ�า return

Page 29: เมธอด ชั้น ม  6 ห้อง 2

ต่�วิอย�าง จังเข้�ยนเมธอดส�าหร�บีแป็ลุ่งหน�วิยอ�ณหภ ม�จัากฟาเรนไฮนต่3เป็นองศึาเซึ่ลุ่เซึ่�ยสวิ�ธ�ทำ�า คุวิามส�มพื่�นธ3ระหวิ�างองศึาฟาเรนไฮต่3 ก�บีองศึาเซึ่ลุ่เซึ่�ยสคุ%อ องศึาเซึ่ลุ่เซึ่�ยส = (องศึาเซึ่ลุ่เซึ่�ยส-32)/1.8ด�งน�+นสามารถูเข้�ยนเมธอดได�ด�งน�+

เมธอดทำ�&สร�างข้*+นน�+จัะร�บีคุ�าอาร3ก�วิเมนต่3ซึ่*&งเป็นองศึาฟาเรนไฮต่3แลุ่ะเป็นข้�อม ลุ่แบีบี double เม%&อเมธอดทำ�างานจัะคุ%นคุ�าเป็นองศึาเซึ่ลุ่เซึ่�ยสซึ่*&งเป็นข้�อม ลุ่แบีบี double ออกมา ต�ว่อย�าง จังเข้�ยนเมะอดส�าหร�บีแป็ลุ่งหน�วิยอ�ณหภ ม�จัากองศึาเซึ่ลุ่เซึ่�ยสเป็นองศึาฟาเรนไฮต่3ว่)ธ�ท$า สามารถูเข้�ยนเป็นเมธอดได�ด�งน�+

Page 30: เมธอด ชั้น ม  6 ห้อง 2

การส�งค�ากลั�บแบบบ�ลั�นเมธอดอ�กช้น�ดหน*&งทำ�&พื่บีมากในการเข้�ยนโป็รแกรมคุ%อ

เมธอดทำ�&ม�การส�งคุ�ากลุ่�บีแบีบีบี ลุ่�น โดยคุ�าทำ�&ส�งกลุ่�บีมาจัะม�สองคุ�าเทำ�าน�+น คุ%อ จัร�ง(true) ก�บีเทำ0จั(false) ซึ่*&งจัะใช้�คุ�าวิ�า boolean ทำ�&ส�วินห�วิ เมธอดลุ่�กษณะน�+ม�กใช้�ในการต่รวิจัสอบีเง%&อนไข้ต่�างๆ โดยส�งข้�อม ลุ่ทำ�&ต่�องการต่รวิจัสอบีเป็นอาร3ก�วิเมนต่3เข้�าไป็ ต่�วิอย�างเช้�น ถู�าหากต่�องการต่รวิจัสอบีวิ�าต่�วิเลุ่ข้ทำ�&ก�าลุ่�งสนใจัอย � เป็นต่�วิเลุ่ข้ในช้�วิง 1 ถู*ง 100 หร%อไม�จัะเข้�ยนเมธอดได�ด�งน�+

เราสามารถูน�าเมธอด isValidน�+ไป็ป็ระย�กต่3ใช้�รมก�บีคุ�าส�&งเลุ่%อกทำ�าในโป็รแกรมได� อย�างเช้�น ถู�าต่�องการเข้�ยนโป็รแกรมทำดสอบีข้�อม ลุ่ value ม�คุ�าอย �ในช้�วิงทำ�&ก�าหนดหร%อไม� จัะเข้�ยนสเต่ต่เมนต่3ได�ด�งน�+

Page 31: เมธอด ชั้น ม  6 ห้อง 2

จัากต่�วิอย�างโป็รแกรมต่�างๆทำ�&ได�ศึ*กษามาจัะเห�ฯได�วิ�าการสร�างเมธอดข้*+นมาน�+นจัะรวิมอย �ในโป็รแกรมทำ�&ม�คุลุ่าสหลุ่�กเพื่�ยงคุลุ่าสเด�ยวิ โดยเมธอดทำ�&สร�างข้*+นจัะอย �หลุ่�งเมธอด main แต่�การสร�างเมธอดน�+สามารถูน�าไป็ไวิ�หน�าเมธ�ดmain ได� ด�งต่�วิอย�างโป็รแกรมทำ�& 4.8

โปรแกรมท�- 4.8 เป็นโป็รแกรมหาคุ�าฟ>งก3ช้� &นข้อง f(x) = x2+5 โดยให� x ม�คุ�าต่�+งแต่� 0 ถู*ง 10 โดยเมธอดทำ�&สร�างข้*+นมาน�+จัะเป็นเมธอดทำ�&ม�การร�บีคุ�าอาร3ก�วิเมนต่3เข้�ามาแลุ่ะม�การส�งคุ�ากลุ่�บี

Page 32: เมธอด ชั้น ม  6 ห้อง 2

ผลุ่ลุ่�พื่ธ3การร�นโป็รแกรมจัะเป็นด�งน�+

เมธอดทำ�&ม�การส�งคุ�ากลุ่�บีคุ%นมาน�+นสามารถูม� return มากกวิ�าหน*&งจั�ดได� แต่�เม%&อโป็รแกรมทำ�างานแลุ่�วิจัะต่�องส�งคุ�ากลุ่�บีมาเพื่�ยงคุ�าเด�ยวิเทำ�าน�+น

Page 33: เมธอด ชั้น ม  6 ห้อง 2

โปรแกรมท�- 4.9 ต่�วิอย�างน�+จัะเป็นต่�วิต่รวิจัสอบีวิ�าต่�วิเลุ่ข้ทำ�&ป็9อนเข้�าไป็เป็นจั�านวินเฉพื่าะหร%อไม� ซึ่*&งต่�วิเลุ่ข้ทำ�&เป็นจั�านวินเฉพื่าะคุ%อต่�วิเลุ่ข้จั�านวินเต่0มต่�+งแต่� 2 ข้*+นไป็ ทำ�&ม�เฉพื่าะเลุ่ข้ 1 แลุ่ะต่�วิม�นเองเทำ�าน�+นทำ�&หารลุ่ง ต่�วิอย�างโป็รแกรมน�+จัะสร�างเมธอดช้%&อวิ�า isPrime ทำ�&จัะร�บีคุ�าต่�วิเลุ่ข้เข้�าไป็ ถู�าหากต่�วิเลุ่ข้น�+นเป็นจั�านวินเฉพื่าะจัะคุ%นคุ�าทำ�&เป็นจัร�งออกมา โดยเมธอดน�+จัะม� return อย � 5 ต่�าแหน�ง

Page 34: เมธอด ชั้น ม  6 ห้อง 2

ถู�าหากร�นโป็รแกรมแลุ่�วิป็9อนคุ�า 6317 แลุ่ะ 7163 เข้�าไป็ ผลุ่ลุ่�พื่ธ3จัะเป็นด�งน�+

Page 35: เมธอด ชั้น ม  6 ห้อง 2

4.5 ต�ว่แปรแบบ Localต่�วิแป็รทำ�&ป็ระกาศึใช้�ในเมธอดเร�ยกวิ�าต่�วิแป็รแบีบี

ทำ�องถู�&น หร%อต่�วิแป็รแบีโลุ่คุอลุ่(local variable) โดยจัะใช้�ได�เฉพื่าะสเต่ต่เมนต่3ในเมธอดเทำ�าน�+น สเต่ต่เมนต่3ต่�างๆทำ�&อย �นอกเมธอดทำ�&ป็ระกาศึต่�วิแป็รน�+จัะไม�สามารถูเร�ยกใช้�ต่�วิแป็รน�+ได� การป็ระการต่�วิแป็รแบีบีโลุ่คุอลุ่น�+ จัะทำ�าให�เมธอดหลุ่ายๆเมธอดใช้�ช้%&อต่�วิแป็รเด�ยวิก�นได� ด�งต่�วิอย�างโป็รแกรมทำ�& 4.10 โดยโป็รแกรมน�+จัะให�เมธอด main() เร�ยกใช้�เมะอดทำ�&สร�างข้*+นสองเมธอดคุ%อ Phuket แลุ่ะrayongโดยทำ�+งสองเมธอดน�+จัะม�ต่�วิแป็รโลุ่คุอลุ่ช้%&อเด�ยวิก�นคุ%อ birds

โปรแกรมท�- 4.10LocalVars.java

Page 36: เมธอด ชั้น ม  6 ห้อง 2

ผลุ่ลุ่�พื่ธ3การร�นโป็รแกรมจัะเป็นด�งน�+

จัากต่�วิอย�างโป็รแกรมทำ�& 4.10 จัะพื่บีวิ�าแม�ต่�วิแป็รในเมธอดทำ�&สร�างข้*+นจัะม�ช้%&อเด�ยวิก�น โดยแต่�ลุ่ะเมธอดม�การก�าหนดคุ�าให�ก�บีต่�วิแป็รเป็นคุ�าทำ�&ไม�เทำ�าก�น ถู�าส�งเกต่จัากผลุ่ลุ่�พื่ธ3จัะพื่บีวิ�าต่�วิแป็รทำ�+งสองไม�เก�&ยวิข้�องก�น การป็ระกาศึต่�วิแป็รแบีบีโลุ่คุอลุ่น�+ เม%&อเมธอดถู กเร�ยกใช้�ม�นจัะสร�างหน�วิยคุวิามจั�าข้*+นมาส�าหร�บีเก0บีต่�วิแป็รน�+น แต่�เม%&อเมธอดทำ�างานเสร0จัส�+นลุ่งหน�วิยคุวิามจั�าส�าหร�บีต่�วิแป็รน�+นจัะถู กยกเลุ่�กไป็

Page 37: เมธอด ชั้น ม  6 ห้อง 2

ส�าหร�บีต่�วิอย�างโป็รแกรมทำ�& 4.11 จัะป็ระกาศึต่�วิแป็ร x เอาไวิ�ในเมธอด main แลุ่ะป็ระกาศึต่�วิแป็รช้%&อ x อ�กต่�วิหน*&งไวิ�ในเมธอด one() ซึ่*&งก0จัะไม�ใช้�ต่�วิแป็ร x ต่�วิเด�ยวิก�น เม%&อในเมธอด main ก�าหนดคุ�าให�ก�บีต่�วิแป็ร x แลุ่ะเมธอด one ถู กเร�ยกใช้� ก0จัะไม�ทำ�าให�ต่�วิแป็ร x ในเมธอด main เป็ลุ่�&ยยนแป็ลุ่งไป็

โปรแกรมท�- 4.11Local2.java ต่�วิอย�างโป็รแกรมแสดงการใช้�ต่�วิแป็รแบีบีโลุ่คุอลุ่

เม%&อร�นโป็รแกรมผลุ่ลุ่�พื่ธ3ทำ�&ได�จัะเป็นด�งน�+

Page 38: เมธอด ชั้น ม  6 ห้อง 2

4.6 โอเว่อร,โหลัดเมธอด (Overloading Method)จัากต่�วิอย�างการสร�างเมธอดทำ�&ได�ศึ*กษาทำ�+งหมดจัะพื่บีวิ�า

เมธอดต่�างๆ จัะรวิมอย �ในคุลุ่าสเด�ยวิก�นแลุ่ะเราสามารถูสร�างเมธอดข้*+นเองได�หลุ่ายเมธอด ถู�าหากเมธอดทำ�&สร�างข้*+นม�หลุ่ายเมธอดแลุ่ะม�เมธอดทำ�&ม�ช้%&อซึ่�+าก�นแต่�ม�การส�งอาร3ก�วิเมนต่3ต่�างก�น แลุ่ะม�จั�านวินพื่าราม�เต่อร3ในการร�บีข้�อม ลุ่ไม�เทำ�าก�น จัะเร�ยกเมะอดป็ระเภทำน�+วิ�าโอเวิอร3โหลุ่ดเมธอด (Overload Method) เม%&อเมธอดถู กเร�ยกใช้� โป็รแกรมจัะพื่�จัารณาวิ�าคุวิรใช้�เมธอดใด ด�งโป็รแกรมทำ�& 4.12

โปรแกรมท�- 4.12เป็นโป็รแกรมต่�วิอย�างโอเวิอร3โหลุ่ดเมธอด โดยสร�างเมธอดหาคุ�าผลุ่รวิมข้องต่�วิเลุ่ข้ข้*+นมา

Page 39: เมธอด ชั้น ม  6 ห้อง 2

ผลุ่ลุ่�พื่ธ3การร�นโป็รแกรมจัะเป็นด�งน�+

Page 40: เมธอด ชั้น ม  6 ห้อง 2

โปรแกรมท�- 4.13 CalGrade.java จัะเป็นการสร�างเมธอดส�าหร�บีคุ�านวิณเกรดข้*+นมา โดยจัะร�บีคุ�าคุะแนนเป็นอาร3ก�วิเมนต่3ส�งไป็ให�เมธอด เม%&อม�การเร�ยกใช้�เมธอดก0จัะคุ%นคุ�าเกรดทำ�&ได�กลุ่�บีมา โดยการคุ�านวิณเกรดน�+นจัะใช้�คุ�าส�&งต่�ดส�นใจัเป็นต่�วิคุ�ดวิ�าคุะแนนน�+นๆคุวิรได�เกรดใด โดยเมธอดทำ�&สร�างข้*+นจัะคุ%นคุ�าเป็นต่�วิอ�กข้ระ

จัากโป็รแกรมจัะเห0นวิ�าเม%&อเร�ยกใช้�เมธอดคุ�านวิณ เกรดจัะส�งคุ�าคุะแนนเป็น 75 เข้�าไป็ ผลุ่ลุ่�พื่ธ3ทำ�&

ได�จัะเป็นด�งน�+

Page 41: เมธอด ชั้น ม  6 ห้อง 2

โปรแกรมท�- 4.14 BarChart.java ต่�วิอย�างน�+เป็นการสร�างเมธอดช้น�ดทำ�&ไม�ม�การคุ%นคุ�ากลุ่�บีช้%&อวิ�า Bar โดยเมธอดน�+จัะร�บีคุ�าอาร3ก�วิเมนต่3เป็นต่�วิเลุ่ข้เข้�าไป็ แลุ่�วิจัะแสดงเคุร%&องหมาย* ต่ามจั�านวินต่�วิเลุ่ข้ทำ�&ร �บีเข้�าไป็ ในลุ่�กษณะกราฟแทำ�งในแนวินอน

Page 42: เมธอด ชั้น ม  6 ห้อง 2

เม%&อร�นโป็รแกรมแลุ่ะป็9อนคุ�า 24 เข้�าไป็ ผลุ่ลุ่�พื่ธ3ทำ�&ได�จัะเป็นด�งน�+

สร.ปในการเข้�ยนโป็รแกรมโดยทำ�&วิๆไป็น�+น จัะม�เมธอดทำ�&ให�

คุอมพื่�วิเต่อร3ทำ�างานอย�างใดอย�างหน*&ง ถู�าหากม�เมธอดหลุ่ายๆเมธอด เราสามารถูรวิมเมธอดน�+เป็นกลุ่��มใหม�ได� ในการสร�างเมธอดน�+ผ �เข้�ยนโป็รแกรมจัะต่�องพื่�จัารณาวิ�าเมธอดทำ�&สร�างข้*+นม�การส�งคุ�าอาร3ก�วิเมนต่3เข้�าไป็หร%อไม� แลุ่ะเมธอดน�+จัะม�การส�งคุ�ากลุ่�บีออกมาหร%อไม� ถู�าม�คุ�าทำ�&ส�งกลุ่�บีมาเป็นข้�อม ลุ่ป็ระเภทำใด ในโป็รแกรมหน*&งๆสามารถูม�เมธอดช้%&อเด�ยวิก�นได� แต่�ม�การทำ�างานทำ�&ต่�างก�น เมธอดลุ่�กษณะน�+เร�ยกวิ�า โอเวิอร3โหลุ่ดเมธอด

Page 43: เมธอด ชั้น ม  6 ห้อง 2

 

จั�ดทำ�าโดย1. น.ส. จัาร�ภา พื่รหมมงคุลุ่

เลุ่ข้ทำ�& 28 2. น.ส. จั�ฑามาศึ อ�คุรเดช้พื่งศึา

เลุ่ข้ทำ�& 293. น.ส. หทำ�ยช้นก ห�วิยหงส3ทำองเลุ่ข้ทำ�& 324. น.ส. ศึ�ร�วิรรณ พื่งศึโอสธ� เลุ่ข้ทำ�& 335. น.ส. ส�ร�กาญจัน3 พื่านะก�จั

เลุ่ข้ทำ�& 346. นาย จั�ต่รเทำพื่ สก�ลุ่ธนาศึร เลุ่ข้ทำ�& 5

ช้�+น ม. 6/2