More Related Content
PDF
PPTX
PPTX
PPTX
PDF
PPT
Java Programming [12/12] : Thread PPTX
Lab Computer Programming 1 DOC
What's hot
PDF
PDF
PPT
PPT
PDF
PDF
PDF
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร PDF
PDF
PPTX
PDF
PDF
คู่มือการใช้งานโปรแกรม CourseLab PPTX
PPTX
PDF
PDF
PDF
Multimedia of introducation to programming c++ Viewers also liked
KEY
PDF
PPT
PDF
การคัดลอกลายภาพโดยโปรแกรม Flash cs5 1 PDF
PPTX
MATE: A Flex Framework - "Extreme Makeover" PDF
Similar to Chapter3
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPT
DOC
PDF
DOCX
PPTX
PPTX
PDF
PDF
PDF
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์ PPT
PPT
Java Programming [4/12] : Object Oriented Concept PDF
More from Parkae' Kusuma
DOC
PPTX
DOCX
DOCX
DOCX
DOCX
DOCX
DOCX
DOCX
น ก เป_ดแอพช_วยผ__ใช_รถเข_นว_ลแชร_ DOCX
DOCX
DOCX
PDF
DOCX
DOCX
PDF
DOCX
DOCX
DOCX
สตีฟ จ็อบส์อดีตซีอีโอแอ๊ปเปิ้ลเสียชีวิตแล้ว DOCX
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()
publicstatic 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(Strings) เป็นเมธอดที่มีการคืนค่ากลับหรือ
ไม่ เพราะเหตุใดจึงทราบถึงชนิดการคืนค่ากลับ
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
3.4 เมธอด showString(String s) มีพารามิเตอร์ และอาร์กูเมนต์
หรือไม่ถ้ามีจงระบุพารามิเตอร์ และ
อาร์กูเมนต์
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
3.5 ผลลัพธ์ที่ได้จากการรันโปรแกรม
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
_________________________________________________________
_____________________________
10