งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 6 เมธอด.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 6 เมธอด."— ใบสำเนางานนำเสนอ:

1 บทที่ 6 เมธอด

2 เมธอดคืออะไร เมธอด (Method) คือ ความสามารถในการทำงานของออบเจ็กต์ มันถูกสร้างขึ้นมาพร้อมกับการสร้างออบเจ็กต์ ซึ่งออบเจ็กต์ที่สร้างจากคลาสเดียวกันก็จะมีรายการของเมธอดต่างๆ เหมือนกัน การที่ออบเจ็กต์มีเมธอดจะช่วยให้ผู้ใช้งาน ไม่ต้องกังวล หรือไม่ต้องสนใจว่า จะมีวิธีการทำงานภายในเมธอดเป็นอย่างไร สนใจเพียงแค่ใช้งานอย่างไร ช่วยให้เมธอดที่มีไม่ถูกยุ่งย่ามก้าวก่ายโดยไม่จำเป็น แต่ละเมธอดจะแบ่งหน้าที่กันทำงาน แต่ก็สามารถทำงานร่วมกันได้ และสามารถเรียกใช้ได้หลายครั้ง เมธอดมีทั้งประเภทที่ผู้ใช้สร้างขึ้นมาเองและเมธอดที่จาวามีให้ใช้อยู่แล้ว

3 เมธอดหลักและเมธอดย่อย
สร้างขึ้นเพื่อเรียกเมธอดอื่นๆ ขึ้นมาทำงาน มีการเข้าถึงเมธอดหลักแบบสาธารณะ(public) สามารถนำเมธอดหลักไปใช้ได้กับทุกๆ คลาส สามารถเรียกใช้งานได้ทันทีไม่ต้องผ่านออบเจ็กต์ ไม่มีการคืนค่ากลับไปที่เมธอดอื่น

4 Method Invocation main Method A Method B Method A() Method B()

5 Ch5_1.java public class ch5_1 {
public static void main(String[] args) { System.out.println("I am starting in main."); deep(); System.out.println("Now, I am back in main."); } //end of main public static void deep(){ System.out.println("I am now in deep"); deeper(); System.out.println("Now, I am back in deep"); } // end of deep public static void deeper(){ System.out.println("I am now in deeper"); }// end of deeper } // end of class

6 Ch5_1.java (edit) public class ch5_1 {
public static void main(String[] args) { System.out.println("I am starting in main."); useDeep.deep(); System.out.println("Now, I am back in main."); } //end of main } // end of class ch5_1 class useDeep { public static void deep(){ System.out.println("I am now in deep"); deeper(); System.out.println("Now, I am back in deep"); } // end of deep public static void deeper(){ System.out.println("I am now in deeper"); }// end of deeper } // end of class useDeep

7 Result of ch5_1.java I am starting in main. I am now in deep
I am now in deeper Now, I am back in deep Now, I am back in main.

8 การส่งค่าอาร์กิวเมนต์และเมธอดที่มีการส่งค่ากลับ
import java.util.Scanner; public class testMax { public static void main(String[] args) { int num1,num2, num3; Scanner keyboard = new Scanner(System.in); System.out.println("Enter number1 :"); num1 = keyboard.nextInt(); System.out.println("Enter number2 :"); num2 = keyboard.nextInt(); num3 = max(num1,num2); System.out.println("The Maximum of "+num1+" and "+num2+" is "+num3); }// end of main static int max(int a,int b){ if (a>b) return a; else return b; } // end of max }//end of class 1 2 3 4

9 ตัวแปรแบบ local สามารถใช้ได้เฉพาะภายในเมธอดเท่านั้น ทำให้เมธอดหลายๆเมธอดสามารถใช้ชื่อตัวแปรชื่อเดียวกันได้ public class LocalVars { public static void main(String[] args){ texas(); california(); } // end of main public static void texas() { int birds = 500; System.out.println("In texas, there are "+birds+" birds."); } // end of texas public static void california() { int birds = 3500; System.out.println("In california, there are "+birds+" birds."); } // end of california } // end of class In texas, there are 500 birds. In california, there are 3500 birds.

10 เมธอดหลักและเมธอดย่อย (ต่อ)
รูปแบบการสร้างเมธอดหลัก สำหรับเมธอดย่อยทั่วๆ ไปที่ไม่ใช่เมธอดหลัก อาจเป็น static method ,instant method, contructor method, Overloading method หรือ Overriding method ก็ได้ แต่ละชนิดมีโครงสร้างไม่เหมือนกับเมธอดหลัก ส่วนประกอบบางอย่างอาจมีหรือไม่มีก็ได้ตามแต่ลักษณะการทำงาน public static void main(String[ ] args) { รายละเอียดการทำงานในเมธอด }

11 เมธอดหลักและเมธอดย่อย(ต่อ)
รูปแบบการสร้างเมธอดย่อย การเข้าถึงเมธอด ชนิดของข้อมูลที่จะส่งกลับออกไป ชื่อเมธอด (ลักษณะของตัวแปรส่ง ชื่อตัวแปรส่ง) { รายละเอียดการทำงานในเมธอด }

12 Method รูปแบบต่างๆ เมธอดมีอยู่ด้วยกัน 5 ประเภทแบ่งตามลักษณะการทำงานดังนี้ ประเภทที่ 1 : static method static method เป็นเมธอดที่เรียกใช้ตัวแปรได้ทันที ไม่ต้องมีการสร้างออบเจ็กต์ขึ้นมาเพื่อเรียกใช้ตัวแปร เช่น การคำนวณทางคณิตศาสตร์ ซึ่ง static method จะรับค่าที่ผู้ใช้ต้องการคำนวณ และทำการคำนวณ แล้วส่งผลลัพธ์กลับไปยังผู้ใช้

13

14 Method รูปแบบต่างๆ ประเภทที่ 2 :instance method
เป็นเมธอดทั่วๆ ไปที่สร้างขึ้นมาใช้กันบ่อยๆ เมธอดแบบนี้จะไม่มีคำว่า static อยู่ข้างหน้าตัวแปร เมื่อจะเรียกใช้ method ประเภทนี้ จะต้องมีการสร้างออบเจ็กต์ขึ้นมา ค่าของข้อมูลจะเปลี่ยนไปตามออบเจ็กต์ที่สร้างขึ้นและการเรียกประมวลผลต้องเรียกผ่านชื่อออบเจ็กต์นั้น

15

16 Method รูปแบบต่างๆ ประเภทที่ 3 : constructor method
คอนสตรัคเตอร์เมธอด ไม่มีคืนค่าข้อมูล

17 Constructor

18 Start Color = Black Start Speed = 0 Current Color: Pink 5 10

19 Method รูปแบบต่างๆ ประเภทที่ 4 : Overloading method
Overloading method คือ เมธอดหลายเมธอดที่มีชื่อเดียวกัน แต่มีชนิดของตัวแปรต่างชนิดกัน หรือจำนวนอาร์กิวเมนต์ไม่เท่ากัน เพราะงานบางงานอาจใช้ชื่องานเดียวกัน แต่ต้องมีการแยกแยะว่า มีการส่งค่าตัวแปรชนิดใดมา เช่น ถ้าส่งค่าตัวแปรมาเป็น Integer ก็ให้ทำงานในเมธอดหนึ่ง ถ้าส่งมาเป็น String ก็ให้ทำงานในอีกเมธอดหนึ่ง

20 Area in Trinagle = Area in Circle =

21 Method รูปแบบต่างๆ ประเภทที่ 5 : Overriding method
Overriding method คือ เมธอดหลายเมธอดที่มีชื่อเดียวกัน ชนิดของตัวแปรเหมือนกัน แต่เขียนโปรแกรมในลักษณะที่เมธอดหนึ่งอยู่ในคลาสแม่ อีกเมธอดหนึ่งอยู่ในคลาสลูก ซึ่งเมื่อมีเมธอดชื่อซ้ำกัน รับค่าของตัวแปรเหมือนกันปรากฏในคลาสลูกโปรแกรมจะทำงานตามคำสั่งในคลาสลูกโดยอัตโนมัติ ซึ่งส่วนนี้เราจะอธิบายอย่างละเอียดในบท Inheritance

22 Method รูปแบบต่างๆ ตัวอย่าง Overriding method Cell phone can tel.
Cell phone can tell. PDA phone GPS feature. Cell phone can tel. PDA phone can tell… PDA phone GPS feature. SuperClass SubClass

23 ก่อนจบบท ในบทนี้เราได้เรียนรู้เกี่ยวกับการใช้งานเมธอดอย่างละเอียด ซึ่งมีการใช้งานหลากหลายทั้งที่เป็นเมธอดหลัก (เมธอด main) ที่เราคุ้นเคย หรือเมธอดชนิด instance method, เมธอดชนิด static method รวมทั้งเมธอดชนิดพิเศษที่ทำงานตอนที่เริ่มต้นสร้างออบเจ็กต์นั่นคือ constructor method รวมทั้งการที่เราสามารถใช้เมธอดที่มีชื่อเดียวกัน (แต่อาร์กิวเมนต์ต่างกัน) ในรูปแบบของ Overloading method และการดัดแปลงเมธอดที่ได้จากการสืบทอดคลาสคือ Overriding Method

24 Public static void main(String, arg[]) { double Area;
Assignment#4 จงหาข้อผิดพลาดในการเขียนเมธอดต่อไปนี้ พร้อมทั้งแก้ไขให้ถูกต้อง 1.1 Public static void main(String, arg[]) { double Area; double Width = 5; double Height = 4; Area = Width*Height; return Area; } // end of main

25 1.2 public static int half(double num) { double result = num/2.0; return result; } 1.3 public static double timesTwo(double num) { double result = num*2;

26 1.4 public static void main(String args[]) { double T_Area = Triangle(7;9); System.out.println(“พื้นที่สามเหลี่ยมฐาน ”+Base+ “ สูง”+Height+ “ คือ”+ “T_Area”); } // end of main Public double Triangle (int Base, Height) { Area = 0.5*Base*Height; return Area; }

27 2 ฝึกเขียนโปรแกรม 2.1 จงเขียนโปรแกรมสร้างเมธอดสำหรับคำนวณหาพื้นที่สามเหลี่ยม โดยให้อินพุตเป็นความยาวฐานและส่วนสูง เอาท์พุตเป็นพื้นที่สามเหลี่ยม 2.2 จงเขียนโปรแกรมเพื่อสร้างเมธอด main รับค่าเลขจำนวนเต็ม 3 จำนวนมาจากแป้นพิมพ์ แล้วสร้างเมธอด 2 เมธอด สำหรับหาค่าสูงสุด และต่ำสุดของเลขจำนวนเต็ม 3 จำนวน 2.3 จงเขียนโปรแกรมสร้างเมธอดเพื่อหาค่า x ยกกำลังสาม โดยที่ x เป็นเลขจำนวนเต็มตั้งแต่ 1 ถึง 100


ดาวน์โหลด ppt บทที่ 6 เมธอด.

งานนำเสนอที่คล้ายกัน


Ads by Google