เมธอด2. 1. โครงสร้างของเมธอด ประเภทของเมธอด การเรียกใช้เมธอด
โครงสร้างทั่วไปของ Method
จากโครงสร้างจะเห็นว่าโปรแกรมหนึ่งอาจมีหลาย Class และในหนึ่ง Class จะมีกี่ Method ก็ได้แต่
ใน Class หลัก (Class ที่มี public นาหน้า) จะต้องมี main Method เสมอ
3. ประเภทของเมธอด (Type of Method)
จาแนก method ใน Java ได้ 2 ประเภท ได้แก่ Method ที่สร้างขึ้นมาเอง และ Method ที่มีอยู่แล้ว
ซึ่งแต่ละประเภทมีลักษณะดังนี้
1. Method ที่สร้างขึ้นมาเอง
สามารถจาแนก method ที่สร้างขึ้นเอง ได้ดังนี้
- Method ไม่รับและไม่ส่งค่า
เป็น method ที่ไม่มีตัวแปร parameter ดังนั้นภายใน body ของ method ชนิดนี้จึงประกอบ
ไปด้วย statement ที่ ต้องการให้ ทางานเท่านั้น ซึ่งหน้าชื่อเมธอดจะมีคาว่า void และภายในเมธอดจะไม่มีคา
ว่า return
-Method ที่มีการส่งหรือคืนค่ากลับ
เป็น method ที่ไม่มีตัวแปร parameter แต่เมื่อสิ้นสุดการทางานของ method จะทาการ
return กลับไปยัง method เมื่อถูกเรียกใช้งาน ข้างหน้าชื่อเมธอดจะไม่มีคาว่า void แต่ชนิดของ data
Type ที่ต้องการคืนค่ากลับ และภายในเมธอดจะมี คาว่า return
- Method ที่มีการรับค่าหรือมีการนาค่าเข้าสู่ภายในเมธอด โดยผ่านทาง parameter
ซึ่งมีรูปแบบของการเขียนดังนี้
4. ชื่อเมธอด(data Type Parameter, data Type Parameter) เช่น add(int a, int b)
ตัวอย่างโปรแกรม :
class add2Num {
public void add(int a,int b)
{ System.out.println(a+b); } //end method ann()
public static void main( String args[] ) {
add2Num a=new add2Num();
a.add(10,1); // call method ann()
} //end main()
} //end class
ในการเขียนโปรแกรมสิ่งที่จาเป็นต้องพิจารณาคือ Parameter และ Argument โดยที่ ค่าที่ class หรือ
วัตถุนั้นเก็บเพื่อส่งต่อให้กับ Method นั้นคือ Argument สิ่งที่ Method นั้นเก็บจะเรียกว่า Parameter
ซึ่งการใช้งานแบบนี้จะเรียกว่า Pass by value จากโปรแกรมที่ผ่านมาจะเห็นได้ว่า Argument คือ 10 และ
1 ส่วน Parameter คือ a และ b
5. - Method ที่มีทั้งการรับค่าและส่งค่า เช่น
class add2Num {
public int add(int a,int b)
{ int c = a+b; return c; } //end method ann()
public static void main( String args[] ) {
add2Num a=new add2Num();
System.out.println(a.add(10,1)); // call method ann()
} //end main()
} //end class
6. 2. Method ที่มีอยู่แล้ว
Method ชนิดนี้มีอยู่แล้วใน class library พร้อมถูกเรียกใช้งาน แต่จะแยกเป็น Method ของ Class
และ Method ของ Object โดยจาแนกได้ 2 ลักษณะ ดังนี้
- Method ของ Class (Class Method ) จะเป็น method แบบ Static สามารถเรียกใช้ได้
ทันทีโดยไม่จาเป็นต้องสร้าง Object ใหม่ขึ้นมา ดังตัวอย่าง System.out.println(“ “);
เมื่อ System คือ ชื่อ class จาก Library
Out คือ ชื่อ Object ของ class
println() หรือ print คือ ชื่อ Method
- Method ของ Object (Instance Method) คือ Method ทั่วไปที่มีอยู่ใน class แต่เมื่อ
ต้องการเรียกใช้งาน จะต้องสร้าง Object ขึ้นมาก่อน แล้วใช้ Object นั้นในการเข้าถึง method
Syntax : การใช้ Object เข้าถึง Method ให้เชื่อมด้วยเครื่องหมาย ( . )
ชื่อ Object . ชื่อ Method( );
7. การใช้งาน method ที่อยู่ภายใน Math class จะเป็น Method ที่เกี่ยวข้องกับการคานวณทาง
คณิตศาสตร์ ซึ่ง method เหล่านี้จัดอยู่ในประเภท “Method ของ Class (Class Method)” ที่กล่าวมาใน
ข้างต้น ซึ่งแสดงตัวอย่างของ method ใน Math Class ดังภาพด้านล่างนี้
2.แนะนาคลาส Math และเมธอดทางคณิตศาสตร์
9. เราสามารถสร้างเมท็อดที่มีการรับค่าจากผู้เรียกเพื่อกาหนดพฤติกรรมการทางานของเมท็อดนั้น ๆ ค่าที่ถูกส่งไป
นี้ เ รี ย ก ว่ า อ า ร์ กิ ว เ ม น ต์ ( argument) ส่ ว น เ ม ท็ อ ด ที่ ถูก เ รี ย ก จ ะ รั บ ค่ า เ ห ล่ า นี้ ผ่ า น ม า ท า ง
พารามิเตอร์ (parameter) ซึ่งถูกนิยามไว้ในส่วน parameter_list ของการประกาศเมท็อด เมท็อดแต่ละอัน
สามารถถูกประกาศให้มีพารามิเตอร์ได้ตั้งแต่ศูนย์ตัวหรือมากกว่า โดยพารามิเตอร์แต่ละตัวจะต้องมีรูปแบบข้อมูล
กากับไว้เสมอ และอาร์กิวเมนต์ที่ใช้ในขณะเรียกใช้งานเมท็อดจะต้องมีรูปแบบข้อมูลที่ตรงกัน
3. การส่งค่าอาร์กิวเมนต์ของเมธอด
11. ตัวอย่างโปรแกรม : การ return ค่าตัวแปรเพื่อแสดงผลสูตรคูณแม่ 2-3
1 //Msend.java
2 public class Msend
3 {
4 public static void main(String[] args)
5 {
6 System.out.println(“Display Multiply”);
7 System.out.println(” “+multiply());
8 }//end main()
9
10 public static String multiply()
11 {
12 int b=0;
13 String output= ” “;
14 for (int i=2;i<=3 ;i++ )
12. 15 {
16 for(int j=1;j<=12;j++)
17 {
18 b = i*j;
19 output += b+ ” “;
20 }//end inside for
21 output += ” n “;
22 }//end outside for
23
24 return output;
25 } //end method multiply()
26
27 }//end class
13. ตัวแปรแบบโลคอล (Local Variable) ก็คือตัวแปรที่ถูกประกาศไว้ในฟังก์ชั่น และมีฟังก์ชั่นที่ประกาศเท่านั้นที่
ใช้ได้ ฟังก์ชั่นอื่นเรียกใช้ไม่ได้ และจะถูกทาลายทันทีเมื่อจบฟังก์ชัน
Local Variable : ตัวแปรใดๆ ที่ประกาศภายในเมธอดต่าง ๆ ซึ่งสามารถถูกอ้างถึงได้ภายในเมธอดที่ประกาศ
มันขึ้นมาเท่านั้น การประกาศตัวแปรท้องถิ่นจะขึ้นต้นด้วย Data Type แล้วตามด้วย identifier เช่น
double avg;
char alpha;
int num;
ตัวแปรที่เราประกาศภายในเมธอด ซึ่งรวมไปถึงตัวแปรในพารามิเตอร์ทางการด้วย จะรวมเรียกว่าตัวแปรท้องถิ่นของ
เมธอด (local variable)
5.ตัวแปรแบบ Local
15. Overload Methods (หรือหลาย ๆ คนอาจจะใช้คาว่า Overloading, Overloader) คือการเขียน
หรือสร้าง Method ชื่อเดิมที่มีอยู่แล้วใหม่ เพื่อจุดประสงค์การทางานที่หลากหลาย โดยใช้ชื่อ Method เดิมแต่มีข้อ
แม้ว่าจะต้องส่ง Argument หรือ Parameter เข้าไปใน Overload Method แต่ละตัวไม่เหมือนกัน
(โปรแกรมจะได้รู้ว่าเราเรียกใช้ตัวไหนนั้นเอง)
ตัวอย่างโปรแกรม
1 public class Overload {
2
3 public static void sayHello() {
4
5 System.out.println("Hello, JAVA");
6
7 }
8
9 public static void sayHello( String
name ) {
6. Overload Methods
16. 10
11 System.out.println("Hello, " + name.toString());
12
13 }
14
15 public static void main(String args[]){
16
17 sayHello();
18 sayHello( "amplysoft" );
19
20 }
21
22 }
17. ผลลัพธ์
สรุป Overload Method
1. Overload Method คือการทาซ้า Method ที่มีอยู่แล้ว แต่ต้องส่งค่า Argument หรือ Parameter
ให้ไม่เหมือนเดิม
2. วัตถุประสงค์เพื่อการสร้าง Method เดิมแต่มีคุณสมบัติ และลักษณะการทางานที่แตกต่างกัน
3. สร้างความยืดหยุ่นในการสร้าง Method