SlideShare une entreprise Scribd logo
1  sur  10
Methods
เมธอด
หัว ข้อ (Topic):
1 การนิยามและเรียกใช้เมธอด (Definition and Call Method)
2 ประเภทของเมธอด (Type of Method)
3 การใช้แมธคลาสเมธอด (Math class method)
วัต ถุป ระสงค์ก ารเรีย นรู้ (Learning Objective):
1. สามารถเขียน Syntax ของการนิยาม Method ได้
2. บอกความแตกต่างของ Method แต่ละประเภทได้
3. สามารถเขียนโปรแกรมโดยการใช้ประโยชน์จาก Method ได้อย่าง
เหมาะสม
4. สามารถเขียนโปรแกรมในการรับส่งค่า Parameters ของ Method
ได้
5. สามารถเขียนโปรแกรมโดยใช้ Math class method
จากเนื้อหาในบทที่ผ่านมา เราได้เรียนรู้เกี่ยวกับการใช้ชุด
คำาสั่งในการควบคุมโปรแกรม (Control Structure) ซึ่งเป็นสิ่งจำาเป็น
เสมอสำา หรั บ ภาษาเขี ย นโปรแกรมทุ ก ภาษา นอกจากนี้ การเขี ย น
โปรแกรมภายในหนึ่ ง โปรแกรมนั้ น อาจต้ อ งแยกส่ ว นงานภายใน
โปรแกรมออกเป็นสัดส่วน เพื่อให้ง่ายต่อการบริการจัดการข้อมูล ซึ่ง
อาจสามารถใช้ ห รื อ สร้ า ง Method เพื่ อ จั ด กลุ่ ม ประเภทข้ อ มู ล หรื อ
กลุ่มของหน้าที่งานได้ ตามความเหมาะสม
การนิย ามและเรีย กใช้เ มธอด (Definition and Call Method)
Method เป็นระเบียบวิธีในการทำา งาน โดยการจัดกลุ่มข้อมูล
สร้างเป็น Function ย่อยภายในโปรแกรมเพื่อง่ายต่อการบริหารจัดการ
กลุ่มข้อมูล ซึ่งมีทั้ง Method ที่โปรแกรมเมอร์สร้างขึ้นใช้งานแอง และ
Method ที่ Java นั้นมีอยู่แล้ ว รอเพียงการถู กเรี ย กใช้ โดยสรุป แล้ ว
Method คื อ บล็ อ กหรื อ กลุ่ ม ของโค้ ด คำา สั่ ง ให้ ค อมฯ กระทำา อะไรสั ก
อย่าง ซึ่งคำา ว่า Method ในภาษา Java ตรงกับคำา ว่ า Function หรือ
Procedure ในภาษาอื่นๆ
โดยปกติ แ ล้ ว การเขี ย นโปรแกรมทางคอมพิ ว เตอร์ มี จุ ด ประสงค์
เพื่อที่จะใช้โปรแกรมนั้นช่วยในการทำางาน ได้อย่างสะดวกและง่ายขึ้น
ดังนั้นโปรแกรมที่พัฒนาเพื่อ จะใช้ในการแก้ ปัญหาของระบบงานใน
1
ปั จ จุ บั น และการเขี ย นโปรแกรมในโลกแห่ ง ความเป็ น จริ ง แล้ ว นั้ น
โปรแกรมมั ก มี ข นาดใหญ่ มี ค วามซั บ ซ้ อ น มี จำา นวนบรรทั ด ของ
โปรแกรม (Line of code) จำา นวนมาก ทำา ให้ยุ่ งยากในการบริ ห าร
จัดการชุดคำาสั่ง หรือโปรแกรม ดังนั้นเพื่อให้โครงสร้างของโปรแกรม
มีข นาดเล็กลง เราสามารถใช้ วิธี การแบ่งโปรแกรม ใหญ่ ออกเป็ น
งานส่ ว นย่ อ ย ๆ เรี ย กว่ า แบ่ ง เป็ น “modules” และนำา หลาย ๆ
modules นั้นมาประกอบกันเป็นโปรแกรมสำาเร็จพร้อมใช้ และสำาหรับ
Java นั้ น ถ้ า พู ด ถึ ง “ Module” ไ ม่ ไ ด้ ห ล า ย ถึ ง เ ฉ พ า ะ ก า ร ส ร้ า ง
Method ในโปรแกรมเท่านั้น จะยังหมายรวมถึง class อีกด้วย นั่น
หมายความว่า ในหนึ่งโปรแกรม นอกจากจะสร้าง Method ซึ่งเปรียบ
เสมื อน Function ย่อยภายในโปรแกรมแล้ ว คุณยังสามารถสร้ างได้
หลาย ๆ คลาสในหนึ่งโปรแกรมอีกด้วย ดังนั้นคำาว่า Module ใน Java
จึงหมายถึง “Method and class”
สำา หรับ Java แล้ว คุณสามารถเขีย นโปรแกรมโดยรวมเอา method
และ class เข้าไว้ด้วยกัน สามารถใช้ Method และ class อ้างอิ ง
ความสามารถของ API (Application Programming Interface)
และ Java class library ได้ นอกจากนี้ Java ยังมี Java API ที่ได้
เตรียมพร้อม class และ method สำาเร็จรูปหลากหลายชนิด พร้อมถูก
เรี ย กใช้ ง าน ทั้ ง สนั บ สนุ น งานด้ า นณิ ต ศาสตร์ การจั ด การข้ อ มู ล
String
อั ก ขระ จั ด การ Input/Output
การตรวจสอบข้ อ ผิ ด
พลาดและอื่น ๆ
การสร้าง Method ต้องคำานึงถึงห้าองค์ประกอบพื้นฐานได้แก่ ตัว
ขยาย ชนิดค่าส่งกลับ ชื่อเมธอดพารามิเตอร์ และบอดี้
การนิย ามเมธอด (Definition Method)
การนิยามเป็นการสร้างตัวตน (Body) ของ Method เพื่อให้รู้ว่า
Method นี้ชื่ออะไร บรรจุข้อมูลและชุดคำาสั่งอะไรอยู่ภายในบ้าง

2
สามารถสร้า ง Method ได้ต าม Syntax ต่อ ไปนี้
Syntax:
Accessibility return_data_type
{ statement ;
statement;}

methodName (parameter_list)

เมื่อ

- Accessibility คื อ การระบุ คำา นำา หน้ า Method ด้ ว ยคำา ว่ า
private, protect, public และ static เพื่ อ ให้ ท ราบว่ า method
นั้นเป็น method ชนิดใด
- return_data_type คื อ การระบุ ช นิ ด ข้ อ มู ล ที่ จ ะใช้ ใ นการ
return ค่ า กลั บ ของ method เช่ น ข้ อ มู ล ชนิ ด String ,int หรื อ
double หาก method นั้ น ไม่ ต้ อ งการให้ return ค่ า กลั บ ให้ ร ะบุ
คำานำาหน้าด้วย “void” แทนที่ชนิดข้อมูล
- methodName คื อ ชื่ อ method ที่ เ ราตั้ ง ขึ้ น (ไม่ ซำ้า กั บ
Keyword)
- parameter_list คือ ตัวแปรที่ใช้ในการรับค่า ของ method
นั้น ๆ สามารถใช้ตัวแปรได้หลายตัว โดยที่ตัวแปร parameter นั้น
ไม่จำา เป็นต้องใช้ข้อมูลชนิดเดียวกัน หรือ method ที่สร้างนั้นอาจไม่
เป็นต้องใช้ตัวแปร parameter ก็ได้
- statement คื อ ประโยคคำา สั่ ง ภายใน body ของ method
นั้น ๆ
เช่น
public static void ann(int a) // หลั งเครื่ อ งหมายวงเล็ บ ( ) ไม่
ใส่เครื่องหมาย (; )
{ System.out.println(a); }
Note : การสร้าง Method นั้นต้องกระทำานอก body ของ main()
โดยในการสร้างเมธอดนั้นสามารถสร้างภายในคลาสเท่านั้น และ
นอก body ของ main()
เช่น

3
การเรีย กใช้ Method (Call Method)
เนื่องจากการสร้าง method นั้นจะต้องสร้างไว้ภายนอก
body ขอ ง method main() ซึ่ ง เป็ น method หลั ก ในการเริ่ ม
ทำา งานของโปรแกรม ดังนั้นการเรียกใช้ method ที่สร้างขึ้นจะต้อง
ถูกเรียกภายใน method main() โดยใช้ syntax ดังนี้
1. ในกรณีท ี่เ ป็น static method หรือ เมธอดที่ไม่จำาเป็นต้อง
สร้างวัตุมาเรียกใช้ จะมีรูปแบบการเรียกใช้เมธอดดังนี้
ชื่อ Method();
ตัวอย่างเช่น

public class maxmin {
public static void ann(int a)
{ System.out.println(a);
} //end method ann()
public static void main( String args[] ) {
ann(10); // call method ann()
} //end main()
} //end class

2. ในกรณีท ี่ไ ม่เ ป็น static method หรือ เมธอดที่จำาเป็นต้อง
สร้างวัตุมาเรียกใช้ จะมีรูปแบบการเรียกใช้เมธอดดังนี้
ชื่อวัตถุ.Method();
ดังนั้นการเรียกใช้งานเมธอดประเภทนี้จำาเป็นต้องสร้างวัตถุขึ้นมา
ก่อนจึงจะเรียกใช้งานได้
ตัวอย่างเช่น

public class maxmin {
public void ann(int a)
{ System.out.println(a);
} //end method ann()
public static void main( String args[] ) {
maxmin a=new maxmin();
a.ann(10); // call method ann()
} //end main()
} //end class

ประเภทของเมธอด (Type of Method)
4
จำาแนก method ใน Java ได้ 2 ประเภท ได้แก่ Method ที่
สร้างขึ้นมาเอง และ Method ที่มีอยู่แล้ว ซึ่งแต่ละประเภทมี ลั กษณะ
ดังนี้
Method ที่ส ร้า งขึ้น มาเอง
สามารถจำาแนก method ที่สร้างขึ้นเอง ได้ดังนี้
1. Method ไม่ร ับ และไม่ส ่ง ค่า
เ ป็ น method ที่ ไ ม่ มี ตั ว แ ป ร parameter ดั ง นั้ น ภ า ย ใ น
body ของ method ชนิ ด นี้ จึ ง ประกอบไปด้ ว ย statement ที่
ต้องการให้ทำางานเท่านั้น ซึ่งหน้าชื่อเมธอดจะมีคำาว่า void และภายใน
เมธอดจะไม่ มี คำา ว่ า return ขอยกตั ว อย่ า งโปรแกรมง่ า ย ๆ ที่ ไ ม่ มี
ความซับซ้อนเพื่อง่ายต่อความเข้าใจดังนี้
ตัวอย่างโปรแกรม: การเรียกใช้ method ในการขีดเส้น
Source Code:

Output:

//NRandS.java
public class NRandS {
public static void main(String[] args)
{
line();
System.out.println("Hello World!");
}//end main()
public static void line() {
for (int i=1;i<=20 ;i++ )
{ System.out.print("="); }//end for
System.out.println(" ");
} //end method line()
}//end class

2. Method ที่ม ีก ารส่ง หรือ คืน ค่า กลับ
เป็ น method ที่ ไ ม่ มี ตั ว แปร parameter แต่ เ มื่ อ สิ้ น สุ ด การ
ทำา งานของ method จะทำา การ return กลับไปยัง method เมื่อถูก
เรี ย กใช้ ง าน ข้ า งหน้ า ชื่ อ เมธอดจะไม่ มี คำา ว่ า void แต่ ม ชนิ ด ของ
dataType ที่ตองการคืนค่ากลับ และภายในเมธอดจะมีคำาว่า return
้
ตัวอย่างโปรแกรม : การ return ค่าตัวแปรเพื่อแสดงผลสูตรคูณแม่ 2
และ 3
//Msend.java
public class Msend {
public static void main(String[] args) {
System.out.println("Display Multiply");

5
System.out.println(" "+multiply());
}//end main()
public static String multiply() {
int b=0;
String output= " ";
for (int i=2;i<=3 ;i++ ) {
for(int j=1;j<=12;j++) {
b = i*j;
output += b+ " ";
}//end inside for
output += " n ";
}//end outside for
return output;
} //end method multiply()
}//end class

Output:

หมายเหตุ เมธอดที่ไม่มีการส่งค่าผ่านเข้าไปในเมธอด ซึ่งมีรูปแบบ ชื่อ
เมธอด() จะเรียกการเรียกใช้เมธอดประเภทนี้ว่า Pass by reference
3. Method ที่ม ีก ารรับ ค่า หรือ มีก ารนำา ค่า เข้า สู่ภ ายใน
เมธอด โดยผ่า นทาง parameter ซึ่งมีรูปแบบของการเขียนดังนี้
ชื่อเมธอด(dataType Parameter, dataType 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

6
4. 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
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( );
ตัวอย่าง การใช้งาน Method ของ Math Class

7
ชื่อ

_______________________

แบบฝึก หัด

รหัส

_______________________

1. จงอธิบายผลของการใช้งานเมธอดในมิติของการ reused เมื่อเมื่อ
เปรียบเทียบกับการเขียนโปรแกรมที่มีเมธอด
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
________________________________
2. จงเขียนคำาสั่งเพื่อสร้างเมธอดต่อไปนี้
ตัวอย่าง เมธอด asd ซึ่งเป็นเมธอดที่ไม่มีการคืนค่าไม่มีการส่งค่า
ผ่าน
ตอบ void asd()
2.1
เมธอด asd ซึ่งเป็นเมธอดที่ไม่มีการคืนค่าแต่มีการส่ง
ค่ า ผ่ า น parameter ชื่ อ a ที่ มี ช นิ ด ข อ ง ข้ อ มู ล เ ป็ น
จำานวนเต็ม
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
8
2.2
เมธอด asd ซึ่งเป็นเมธอดที่ไม่มีการคืนค่าแต่มีการส่ง
ค่าผ่าน parameter ชื่อ a และ b ซึ่งต่างมีชนิดของข้อมูล
เป็นจำานวนเต็มทั้งสองตัว
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
2.3
เมธอด asd ซึ่ ง เป็ น เมธอดที่ มี ก ารคื น ค่ า กลั บ เป็ น
ข้อความ และมีการส่ งค่ าผ่ าน parameter ชื่อ a ที่ มีชนิด
ของข้อมูลเป็นจำานวนเต็ม
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
จงใช้โปรแกรมต่อไปนี้ในการตอบคำาถามข้อ 3.1 – 3.5
class Test {
void showString(String s){
System.out.println("*"+s+"*");
}
}
class M{
public static void main(String args[ ]){
Test t = new Test();
t.showString("Hello");
}
}

3.1 โปรแกรมนี้มีจำานวนคลาสเท่าใด
_________________________________________________________
_____________________________
3.2 เมธอดใดคือเมธอดหลักของโปรแกรม
_________________________________________________________
_____________________________

9
3.3 เมธอด showString(String s) เป็นเมธอดที่มีการคืนค่ากลับหรือ
ไม่ เพราะเหตุใดจึงทราบถึงชนิดการคืนค่ากลับ
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
3.4 เมธอด showString(String s) มีพารามิเตอร์ และอาร์กูเมนต์
หรือไม่ถ้ามีจงระบุพารามิเตอร์ และ
อาร์กูเมนต์
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
3.5 ผลลัพธ์ที่ได้จากการรันโปรแกรม
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________

10

Contenu connexe

Tendances

งานกลุ่มมคอม
งานกลุ่มมคอมงานกลุ่มมคอม
งานกลุ่มมคอมEdz Chatchawan
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาwinewic199
 
9789740329923
97897403299239789740329923
9789740329923CUPress
 
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปรLesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปรErrorrrrr
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาThanachart Numnonda
 
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++Naowarat Jaikaroon
 
เมธอด Method
เมธอด Methodเมธอด Method
เมธอด Methodtyt13
 
Course lap
Course lapCourse lap
Course lapkruood
 
Multimedia of introducation to programming c++
Multimedia of introducation to programming c++Multimedia of introducation to programming c++
Multimedia of introducation to programming c++จู ลิ
 

Tendances (17)

Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 
Presentation1
Presentation1Presentation1
Presentation1
 
งานกลุ่มมคอม
งานกลุ่มมคอมงานกลุ่มมคอม
งานกลุ่มมคอม
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
 
9789740329923
97897403299239789740329923
9789740329923
 
Pbl2
Pbl2Pbl2
Pbl2
 
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปรLesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
 
เมธอด Method
เมธอด Methodเมธอด Method
เมธอด Method
 
คู่มือ Courselab
คู่มือ Courselabคู่มือ Courselab
คู่มือ Courselab
 
คู่มือการใช้งานโปรแกรม CourseLab
คู่มือการใช้งานโปรแกรม CourseLabคู่มือการใช้งานโปรแกรม CourseLab
คู่มือการใช้งานโปรแกรม CourseLab
 
Computer Programming 4
Computer Programming 4Computer Programming 4
Computer Programming 4
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
Course lap
Course lapCourse lap
Course lap
 
โจทย์ Pbl3
โจทย์ Pbl3โจทย์ Pbl3
โจทย์ Pbl3
 
Multimedia of introducation to programming c++
Multimedia of introducation to programming c++Multimedia of introducation to programming c++
Multimedia of introducation to programming c++
 

En vedette

Le nouveau républicain 1
Le nouveau républicain 1Le nouveau républicain 1
Le nouveau républicain 1sesostris
 
การคัดลอกลายภาพโดยโปรแกรม Flash cs5 1
การคัดลอกลายภาพโดยโปรแกรม Flash cs5  1การคัดลอกลายภาพโดยโปรแกรม Flash cs5  1
การคัดลอกลายภาพโดยโปรแกรม Flash cs5 1kanjana312845
 
DMMS Short Presentation
DMMS Short PresentationDMMS Short Presentation
DMMS Short Presentationbuschko
 
MATE: A Flex Framework - "Extreme Makeover"
MATE: A Flex Framework - "Extreme Makeover"MATE: A Flex Framework - "Extreme Makeover"
MATE: A Flex Framework - "Extreme Makeover"Theo Rushin Jr
 
Acc4501 problem1
Acc4501 problem1Acc4501 problem1
Acc4501 problem1Adi Ali
 

En vedette (7)

Zinn keynote
Zinn keynoteZinn keynote
Zinn keynote
 
Le nouveau républicain 1
Le nouveau républicain 1Le nouveau républicain 1
Le nouveau républicain 1
 
stasera1
stasera1stasera1
stasera1
 
การคัดลอกลายภาพโดยโปรแกรม Flash cs5 1
การคัดลอกลายภาพโดยโปรแกรม Flash cs5  1การคัดลอกลายภาพโดยโปรแกรม Flash cs5  1
การคัดลอกลายภาพโดยโปรแกรม Flash cs5 1
 
DMMS Short Presentation
DMMS Short PresentationDMMS Short Presentation
DMMS Short Presentation
 
MATE: A Flex Framework - "Extreme Makeover"
MATE: A Flex Framework - "Extreme Makeover"MATE: A Flex Framework - "Extreme Makeover"
MATE: A Flex Framework - "Extreme Makeover"
 
Acc4501 problem1
Acc4501 problem1Acc4501 problem1
Acc4501 problem1
 

Similaire à Chapter3 (20)

เมธอด
เมธอดเมธอด
เมธอด
 
เมธอด
เมธอดเมธอด
เมธอด
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
5.Methods cs
5.Methods cs5.Methods cs
5.Methods cs
 
นำเสนอMethods
นำเสนอMethodsนำเสนอMethods
นำเสนอMethods
 
Method
MethodMethod
Method
 
คำถามท้ายบท
คำถามท้ายบทคำถามท้ายบท
คำถามท้ายบท
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
c# part1.pptx
c# part1.pptxc# part1.pptx
c# part1.pptx
 
Computer Programming 1
Computer Programming 1Computer Programming 1
Computer Programming 1
 
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
 
Java intro
Java introJava intro
Java intro
 
Chapter1
Chapter1Chapter1
Chapter1
 
โครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีโครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซี
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
4
44
4
 
Learn 2
Learn 2Learn 2
Learn 2
 

Plus de Parkae' Kusuma

งานย่อย1
งานย่อย1งานย่อย1
งานย่อย1Parkae' Kusuma
 
งานย่อย1
งานย่อย1งานย่อย1
งานย่อย1Parkae' Kusuma
 
กิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขันกิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขันParkae' Kusuma
 
สรุปคำติชม
สรุปคำติชมสรุปคำติชม
สรุปคำติชมParkae' Kusuma
 
กิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขันกิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขันParkae' Kusuma
 
น ก เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_
น  ก  เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_น  ก  เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_
น ก เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_Parkae' Kusuma
 
ซ น ท โอท_
ซ น   ท โอท_ซ น   ท โอท_
ซ น ท โอท_Parkae' Kusuma
 
Itวิโรจน์
Itวิโรจน์Itวิโรจน์
Itวิโรจน์Parkae' Kusuma
 
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้ว
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้วสตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้ว
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้วParkae' Kusuma
 

Plus de Parkae' Kusuma (20)

66
6666
66
 
เมธอด
เมธอด เมธอด
เมธอด
 
งานย่อย1
งานย่อย1งานย่อย1
งานย่อย1
 
งานย่อย1
งานย่อย1งานย่อย1
งานย่อย1
 
กุสุมา
กุสุมากุสุมา
กุสุมา
 
กิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขันกิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขัน
 
สรุปคำติชม
สรุปคำติชมสรุปคำติชม
สรุปคำติชม
 
กิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขันกิจกรรมร่วมแข่งขัน
กิจกรรมร่วมแข่งขัน
 
น ก เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_
น  ก  เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_น  ก  เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_
น ก เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_
 
ซ น ท โอท_
ซ น   ท โอท_ซ น   ท โอท_
ซ น ท โอท_
 
Itวิโรจน์
Itวิโรจน์Itวิโรจน์
Itวิโรจน์
 
สุวภัทร
สุวภัทรสุวภัทร
สุวภัทร
 
ผาณิตรี
ผาณิตรีผาณิตรี
ผาณิตรี
 
Ti มิ้น
Ti มิ้นTi มิ้น
Ti มิ้น
 
It เก้
It เก้It เก้
It เก้
 
ผาณิตรี
ผาณิตรีผาณิตรี
ผาณิตรี
 
Ti มิ้น
Ti มิ้นTi มิ้น
Ti มิ้น
 
It เก้
It เก้It เก้
It เก้
 
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้ว
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้วสตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้ว
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้ว
 
It 2
It 2It 2
It 2
 

Chapter3

  • 1. Methods เมธอด หัว ข้อ (Topic): 1 การนิยามและเรียกใช้เมธอด (Definition and Call Method) 2 ประเภทของเมธอด (Type of Method) 3 การใช้แมธคลาสเมธอด (Math class method) วัต ถุป ระสงค์ก ารเรีย นรู้ (Learning Objective): 1. สามารถเขียน Syntax ของการนิยาม Method ได้ 2. บอกความแตกต่างของ Method แต่ละประเภทได้ 3. สามารถเขียนโปรแกรมโดยการใช้ประโยชน์จาก Method ได้อย่าง เหมาะสม 4. สามารถเขียนโปรแกรมในการรับส่งค่า Parameters ของ Method ได้ 5. สามารถเขียนโปรแกรมโดยใช้ Math class method จากเนื้อหาในบทที่ผ่านมา เราได้เรียนรู้เกี่ยวกับการใช้ชุด คำาสั่งในการควบคุมโปรแกรม (Control Structure) ซึ่งเป็นสิ่งจำาเป็น เสมอสำา หรั บ ภาษาเขี ย นโปรแกรมทุ ก ภาษา นอกจากนี้ การเขี ย น โปรแกรมภายในหนึ่ ง โปรแกรมนั้ น อาจต้ อ งแยกส่ ว นงานภายใน โปรแกรมออกเป็นสัดส่วน เพื่อให้ง่ายต่อการบริการจัดการข้อมูล ซึ่ง อาจสามารถใช้ ห รื อ สร้ า ง Method เพื่ อ จั ด กลุ่ ม ประเภทข้ อ มู ล หรื อ กลุ่มของหน้าที่งานได้ ตามความเหมาะสม การนิย ามและเรีย กใช้เ มธอด (Definition and Call Method) Method เป็นระเบียบวิธีในการทำา งาน โดยการจัดกลุ่มข้อมูล สร้างเป็น Function ย่อยภายในโปรแกรมเพื่อง่ายต่อการบริหารจัดการ กลุ่มข้อมูล ซึ่งมีทั้ง Method ที่โปรแกรมเมอร์สร้างขึ้นใช้งานแอง และ Method ที่ Java นั้นมีอยู่แล้ ว รอเพียงการถู กเรี ย กใช้ โดยสรุป แล้ ว Method คื อ บล็ อ กหรื อ กลุ่ ม ของโค้ ด คำา สั่ ง ให้ ค อมฯ กระทำา อะไรสั ก อย่าง ซึ่งคำา ว่า Method ในภาษา Java ตรงกับคำา ว่ า Function หรือ Procedure ในภาษาอื่นๆ โดยปกติ แ ล้ ว การเขี ย นโปรแกรมทางคอมพิ ว เตอร์ มี จุ ด ประสงค์ เพื่อที่จะใช้โปรแกรมนั้นช่วยในการทำางาน ได้อย่างสะดวกและง่ายขึ้น ดังนั้นโปรแกรมที่พัฒนาเพื่อ จะใช้ในการแก้ ปัญหาของระบบงานใน 1
  • 2. ปั จ จุ บั น และการเขี ย นโปรแกรมในโลกแห่ ง ความเป็ น จริ ง แล้ ว นั้ น โปรแกรมมั ก มี ข นาดใหญ่ มี ค วามซั บ ซ้ อ น มี จำา นวนบรรทั ด ของ โปรแกรม (Line of code) จำา นวนมาก ทำา ให้ยุ่ งยากในการบริ ห าร จัดการชุดคำาสั่ง หรือโปรแกรม ดังนั้นเพื่อให้โครงสร้างของโปรแกรม มีข นาดเล็กลง เราสามารถใช้ วิธี การแบ่งโปรแกรม ใหญ่ ออกเป็ น งานส่ ว นย่ อ ย ๆ เรี ย กว่ า แบ่ ง เป็ น “modules” และนำา หลาย ๆ modules นั้นมาประกอบกันเป็นโปรแกรมสำาเร็จพร้อมใช้ และสำาหรับ Java นั้ น ถ้ า พู ด ถึ ง “ Module” ไ ม่ ไ ด้ ห ล า ย ถึ ง เ ฉ พ า ะ ก า ร ส ร้ า ง Method ในโปรแกรมเท่านั้น จะยังหมายรวมถึง class อีกด้วย นั่น หมายความว่า ในหนึ่งโปรแกรม นอกจากจะสร้าง Method ซึ่งเปรียบ เสมื อน Function ย่อยภายในโปรแกรมแล้ ว คุณยังสามารถสร้ างได้ หลาย ๆ คลาสในหนึ่งโปรแกรมอีกด้วย ดังนั้นคำาว่า Module ใน Java จึงหมายถึง “Method and class” สำา หรับ Java แล้ว คุณสามารถเขีย นโปรแกรมโดยรวมเอา method และ class เข้าไว้ด้วยกัน สามารถใช้ Method และ class อ้างอิ ง ความสามารถของ API (Application Programming Interface) และ Java class library ได้ นอกจากนี้ Java ยังมี Java API ที่ได้ เตรียมพร้อม class และ method สำาเร็จรูปหลากหลายชนิด พร้อมถูก เรี ย กใช้ ง าน ทั้ ง สนั บ สนุ น งานด้ า นณิ ต ศาสตร์ การจั ด การข้ อ มู ล String อั ก ขระ จั ด การ Input/Output การตรวจสอบข้ อ ผิ ด พลาดและอื่น ๆ การสร้าง Method ต้องคำานึงถึงห้าองค์ประกอบพื้นฐานได้แก่ ตัว ขยาย ชนิดค่าส่งกลับ ชื่อเมธอดพารามิเตอร์ และบอดี้ การนิย ามเมธอด (Definition Method) การนิยามเป็นการสร้างตัวตน (Body) ของ Method เพื่อให้รู้ว่า Method นี้ชื่ออะไร บรรจุข้อมูลและชุดคำาสั่งอะไรอยู่ภายในบ้าง 2
  • 3. สามารถสร้า ง Method ได้ต าม Syntax ต่อ ไปนี้ Syntax: Accessibility return_data_type { statement ; statement;} methodName (parameter_list) เมื่อ - Accessibility คื อ การระบุ คำา นำา หน้ า Method ด้ ว ยคำา ว่ า private, protect, public และ static เพื่ อ ให้ ท ราบว่ า method นั้นเป็น method ชนิดใด - return_data_type คื อ การระบุ ช นิ ด ข้ อ มู ล ที่ จ ะใช้ ใ นการ return ค่ า กลั บ ของ method เช่ น ข้ อ มู ล ชนิ ด String ,int หรื อ double หาก method นั้ น ไม่ ต้ อ งการให้ return ค่ า กลั บ ให้ ร ะบุ คำานำาหน้าด้วย “void” แทนที่ชนิดข้อมูล - methodName คื อ ชื่ อ method ที่ เ ราตั้ ง ขึ้ น (ไม่ ซำ้า กั บ Keyword) - parameter_list คือ ตัวแปรที่ใช้ในการรับค่า ของ method นั้น ๆ สามารถใช้ตัวแปรได้หลายตัว โดยที่ตัวแปร parameter นั้น ไม่จำา เป็นต้องใช้ข้อมูลชนิดเดียวกัน หรือ method ที่สร้างนั้นอาจไม่ เป็นต้องใช้ตัวแปร parameter ก็ได้ - statement คื อ ประโยคคำา สั่ ง ภายใน body ของ method นั้น ๆ เช่น public static void ann(int a) // หลั งเครื่ อ งหมายวงเล็ บ ( ) ไม่ ใส่เครื่องหมาย (; ) { System.out.println(a); } Note : การสร้าง Method นั้นต้องกระทำานอก body ของ main() โดยในการสร้างเมธอดนั้นสามารถสร้างภายในคลาสเท่านั้น และ นอก body ของ main() เช่น 3
  • 4. การเรีย กใช้ Method (Call Method) เนื่องจากการสร้าง method นั้นจะต้องสร้างไว้ภายนอก body ขอ ง method main() ซึ่ ง เป็ น method หลั ก ในการเริ่ ม ทำา งานของโปรแกรม ดังนั้นการเรียกใช้ method ที่สร้างขึ้นจะต้อง ถูกเรียกภายใน method main() โดยใช้ syntax ดังนี้ 1. ในกรณีท ี่เ ป็น static method หรือ เมธอดที่ไม่จำาเป็นต้อง สร้างวัตุมาเรียกใช้ จะมีรูปแบบการเรียกใช้เมธอดดังนี้ ชื่อ Method(); ตัวอย่างเช่น public class maxmin { public static void ann(int a) { System.out.println(a); } //end method ann() public static void main( String args[] ) { ann(10); // call method ann() } //end main() } //end class 2. ในกรณีท ี่ไ ม่เ ป็น static method หรือ เมธอดที่จำาเป็นต้อง สร้างวัตุมาเรียกใช้ จะมีรูปแบบการเรียกใช้เมธอดดังนี้ ชื่อวัตถุ.Method(); ดังนั้นการเรียกใช้งานเมธอดประเภทนี้จำาเป็นต้องสร้างวัตถุขึ้นมา ก่อนจึงจะเรียกใช้งานได้ ตัวอย่างเช่น public class maxmin { public void ann(int a) { System.out.println(a); } //end method ann() public static void main( String args[] ) { maxmin a=new maxmin(); a.ann(10); // call method ann() } //end main() } //end class ประเภทของเมธอด (Type of Method) 4
  • 5. จำาแนก method ใน Java ได้ 2 ประเภท ได้แก่ Method ที่ สร้างขึ้นมาเอง และ Method ที่มีอยู่แล้ว ซึ่งแต่ละประเภทมี ลั กษณะ ดังนี้ Method ที่ส ร้า งขึ้น มาเอง สามารถจำาแนก method ที่สร้างขึ้นเอง ได้ดังนี้ 1. Method ไม่ร ับ และไม่ส ่ง ค่า เ ป็ น method ที่ ไ ม่ มี ตั ว แ ป ร parameter ดั ง นั้ น ภ า ย ใ น body ของ method ชนิ ด นี้ จึ ง ประกอบไปด้ ว ย statement ที่ ต้องการให้ทำางานเท่านั้น ซึ่งหน้าชื่อเมธอดจะมีคำาว่า void และภายใน เมธอดจะไม่ มี คำา ว่ า return ขอยกตั ว อย่ า งโปรแกรมง่ า ย ๆ ที่ ไ ม่ มี ความซับซ้อนเพื่อง่ายต่อความเข้าใจดังนี้ ตัวอย่างโปรแกรม: การเรียกใช้ method ในการขีดเส้น Source Code: Output: //NRandS.java public class NRandS { public static void main(String[] args) { line(); System.out.println("Hello World!"); }//end main() public static void line() { for (int i=1;i<=20 ;i++ ) { System.out.print("="); }//end for System.out.println(" "); } //end method line() }//end class 2. Method ที่ม ีก ารส่ง หรือ คืน ค่า กลับ เป็ น method ที่ ไ ม่ มี ตั ว แปร parameter แต่ เ มื่ อ สิ้ น สุ ด การ ทำา งานของ method จะทำา การ return กลับไปยัง method เมื่อถูก เรี ย กใช้ ง าน ข้ า งหน้ า ชื่ อ เมธอดจะไม่ มี คำา ว่ า void แต่ ม ชนิ ด ของ dataType ที่ตองการคืนค่ากลับ และภายในเมธอดจะมีคำาว่า return ้ ตัวอย่างโปรแกรม : การ return ค่าตัวแปรเพื่อแสดงผลสูตรคูณแม่ 2 และ 3 //Msend.java public class Msend { public static void main(String[] args) { System.out.println("Display Multiply"); 5
  • 6. System.out.println(" "+multiply()); }//end main() public static String multiply() { int b=0; String output= " "; for (int i=2;i<=3 ;i++ ) { for(int j=1;j<=12;j++) { b = i*j; output += b+ " "; }//end inside for output += " n "; }//end outside for return output; } //end method multiply() }//end class Output: หมายเหตุ เมธอดที่ไม่มีการส่งค่าผ่านเข้าไปในเมธอด ซึ่งมีรูปแบบ ชื่อ เมธอด() จะเรียกการเรียกใช้เมธอดประเภทนี้ว่า Pass by reference 3. Method ที่ม ีก ารรับ ค่า หรือ มีก ารนำา ค่า เข้า สู่ภ ายใน เมธอด โดยผ่า นทาง parameter ซึ่งมีรูปแบบของการเขียนดังนี้ ชื่อเมธอด(dataType Parameter, dataType 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 6
  • 7. 4. 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 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( ); ตัวอย่าง การใช้งาน Method ของ Math Class 7
  • 8. ชื่อ _______________________ แบบฝึก หัด รหัส _______________________ 1. จงอธิบายผลของการใช้งานเมธอดในมิติของการ reused เมื่อเมื่อ เปรียบเทียบกับการเขียนโปรแกรมที่มีเมธอด _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ ________________________________ 2. จงเขียนคำาสั่งเพื่อสร้างเมธอดต่อไปนี้ ตัวอย่าง เมธอด asd ซึ่งเป็นเมธอดที่ไม่มีการคืนค่าไม่มีการส่งค่า ผ่าน ตอบ void asd() 2.1 เมธอด asd ซึ่งเป็นเมธอดที่ไม่มีการคืนค่าแต่มีการส่ง ค่ า ผ่ า น parameter ชื่ อ a ที่ มี ช นิ ด ข อ ง ข้ อ มู ล เ ป็ น จำานวนเต็ม _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ 8
  • 9. 2.2 เมธอด asd ซึ่งเป็นเมธอดที่ไม่มีการคืนค่าแต่มีการส่ง ค่าผ่าน parameter ชื่อ a และ b ซึ่งต่างมีชนิดของข้อมูล เป็นจำานวนเต็มทั้งสองตัว _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ 2.3 เมธอด asd ซึ่ ง เป็ น เมธอดที่ มี ก ารคื น ค่ า กลั บ เป็ น ข้อความ และมีการส่ งค่ าผ่ าน parameter ชื่อ a ที่ มีชนิด ของข้อมูลเป็นจำานวนเต็ม _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ จงใช้โปรแกรมต่อไปนี้ในการตอบคำาถามข้อ 3.1 – 3.5 class Test { void showString(String s){ System.out.println("*"+s+"*"); } } class M{ public static void main(String args[ ]){ Test t = new Test(); t.showString("Hello"); } } 3.1 โปรแกรมนี้มีจำานวนคลาสเท่าใด _________________________________________________________ _____________________________ 3.2 เมธอดใดคือเมธอดหลักของโปรแกรม _________________________________________________________ _____________________________ 9
  • 10. 3.3 เมธอด showString(String s) เป็นเมธอดที่มีการคืนค่ากลับหรือ ไม่ เพราะเหตุใดจึงทราบถึงชนิดการคืนค่ากลับ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ 3.4 เมธอด showString(String s) มีพารามิเตอร์ และอาร์กูเมนต์ หรือไม่ถ้ามีจงระบุพารามิเตอร์ และ อาร์กูเมนต์ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ 3.5 ผลลัพธ์ที่ได้จากการรันโปรแกรม _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ _________________________________________________________ _____________________________ 10