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

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

Chapter 8 Methods TECH30201 Object-Oriented Programming Reading: Ch.8.

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


งานนำเสนอเรื่อง: "Chapter 8 Methods TECH30201 Object-Oriented Programming Reading: Ch.8."— ใบสำเนางานนำเสนอ:

1 Chapter 8 Methods TECH30201 Object-Oriented Programming Reading: Ch.8

2 เมธอด (Method) 2 กลุ่มของคำสั่งที่ถูกรวมเข้าไว้ภายใต้ชื่อหนึ่งๆ สำหรับทำหน้าที่ตามที่ผู้เขียนโปรแกรมกำหนด [modifier] return_type MethodName ([parameter]) { [method_body] return varValue; } public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; }

3 เมธอด (Method) 3 public class Balloon { private int size=5; public static int ballCount; public void showSize() { System.out.println(size); } public void bigger() { size=size+5; } public void smaller() { size=size-2; } public class Balloon { private int size=5; public static int ballCount; public void showSize() { System.out.println(size); } public void bigger() { size=size+5; } public void smaller() { size=size-2; } [modifier] return_type MethodName ([parameter]) { [method_body] return varValue; }

4 เมธอด (Method) 4 public class Dog { private int size; String name; public void bark() { System.out.println("Ruff Ruff!!"); } public void setSize(int s) { if(s > 0) size = s; } public int getSize() { return size; } public class Dog { private int size; String name; public void bark() { System.out.println("Ruff Ruff!!"); } public void setSize(int s) { if(s > 0) size = s; } public int getSize() { return size; } [modifier] return_type MethodName ([parameter]) { [method_body] return varValue; }

5 Argument และ Parameter 5 public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class DateTest { public static void main(String[] args) { Date date = new Date(); date.setDate( 18, 10, 2556 ); } public class DateTest { public static void main(String[] args) { Date date = new Date(); date.setDate( 18, 10, 2556 ); } arguments parameters

6 Argument และ Parameter 6 public class Dog { private int size; public void bark() { System.out.println("Ruff Ruff!!"); } public void setSize(int s) { if(s > 0) size = s; } public int getSize() { return size; } public class Dog { private int size; public void bark() { System.out.println("Ruff Ruff!!"); } public void setSize(int s) { if(s > 0) size = s; } public int getSize() { return size; } public class DogTest { public static void main(String[] arg) { Dog myDog = new Dog(); myDog.bark(); myDog.setSize(10); System.out.println(myDog.getSize()); } public class DogTest { public static void main(String[] arg) { Dog myDog = new Dog(); myDog.bark(); myDog.setSize(10); System.out.println(myDog.getSize()); } 10 arguments parameters

7 ตัวอย่างที่ public class PrimitivePassingTest { public static void add5(int x) { x = x + 5; System.out.println("In method add5: x = " + x); } public static void main(String[] args) { int x = 10; System.out.println("Before calling add5: x = " + x); add5(x); System.out.println("After calling add5: x = " + x); } 10 Before calling add5: x=10 In method add5: x=15 After calling add5: x=10

8 ตัวอย่างที่ public class TestObject { public static int cube(int x) { return x*x*x; } public static void main(String[] args) { int y; y = cube(2); System.out.println(“2^3 = “ + y); System.out.println(“(2*y)^3 = “ + cube(2*y)); } 2 8 2^3 = 8

9 ตัวอย่างที่ public class TestObject { public static int cube(int x) { return x*x*x; } public static void main(String[] args) { int y; y = cube(2); System.out.println(“2^3 = “ + y); System.out.println(“(2*y)^3 = “ + cube(2*y)); } ^3 = 8 (2*y)^3 = 4096

10 ปฏิบัติการ  เนื้อหาบทที่ 8  หัวข้อที่ 1 – 4 ( หน้า 1 – 5)  ปฏิบัติการที่ 12 เมธอด (1)  เข้าไปที่ webcs.mwit.ac.th  การเรียนการสอน  ปฏิบัติการที่ 12 10

11 ประเภทของเมธอด 11 Instance method คือเมธอดที่กระทำกับตัว object โดยตรง ไม่มีคีย์เวิร์ด static Static method เมธอดที่มีพฤติกรรมที่ไม่ขึ้นอยู่กับ object ใดๆ สามารถเรียกใช้เมธอดได้โดยที่ไม่ต้องทำการสร้าง object มีคีย์เวิร์ด static Constructor method มีชื่อเหมือนกับชื่อคลาส และไม่มีการกำหนดชนิดของข้อมูลที่ถูก ส่งกลับ ถูกเรียกใช้โดยอัตโนมัติเมื่อมีการใช้คำสั่ง new ( เมื่อมีการสร้าง object)

12 Instance method 12 public class Dog { private int size; String name; public void bark() { System.out.println("Ruff Ruff!!"); } public void setSize(int s) { if(s > 0) size = s; } public int getSize() { return size; } public class Dog { private int size; String name; public void bark() { System.out.println("Ruff Ruff!!"); } public void setSize(int s) { if(s > 0) size = s; } public int getSize() { return size; } ก่อนเรียกใช้งานเมธอด จะต้องทำการสร้าง object ก่อน

13 Instance method 13 public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class DateTest { public static void main(String[] args) { Date date = new Date(); date.setDate( 18, 10, 2556 ); } public class DateTest { public static void main(String[] args) { Date date = new Date(); date.setDate( 18, 10, 2556 ); } ก่อนเรียกใช้งานเมธอด จะต้องทำการสร้าง object ก่อน

14 Instance method กับ this 14 public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class Date { private int day, month, year; public void setDate(int newDay, int newMonth, int newYear) { day = newDay; month = newMonth; year = newYear; } public class Date { private int day, month, year; public void setDate(int day, int month, int year) { this.day = day; this.month = month; this.year = year; } public class Date { private int day, month, year; public void setDate(int day, int month, int year) { this.day = day; this.month = month; this.year = year; } ไม่ แนะนำ

15 Static method 15 public class MaxFinder { public static int max(int x, int y) { if (x > y) return x; return y; } public class MaxFinder { public static int max(int x, int y) { if (x > y) return x; return y; } public class MaxFinderTest { public static void main(String[] args) { System.out.println( MaxFinder.max(3,5) ); } public class MaxFinderTest { public static void main(String[] args) { System.out.println( MaxFinder.max(3,5) ); } เรียกใช้งานผ่านชื่อคลาสได้โดยตรง โดย ไม่ต้องสร้าง object

16 Constructor method 16 public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; } public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; } public class DateTest { public static void main(String[] args) { Date date = new Date(18, 10, 2556); } public class DateTest { public static void main(String[] args) { Date date = new Date(18, 10, 2556); }

17 Constructor method 17 public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; } public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; } public class DateTest { public static void main(String[] args) { Date date = new Date(); } public class DateTest { public static void main(String[] args) { Date date = new Date(); }

18 Constructor method 18 public class Date { private int day, month, year; public Date(int d, int m, int y) { day = d; month = m; year = y; } public class Date { private int day, month, year; public Date(int d, int m, int y) { day = d; month = m; year = y; } public class DateTest { public static void main(String[] args) { Date date = new Date(); } public class DateTest { public static void main(String[] args) { Date date = new Date(); } ERROR เพราะ อะไร ?

19 ปฏิบัติการ  เนื้อหาบทที่ 8  หัวข้อที่ 5 ( หน้า 5 – 8)  ปฏิบัติการที่ 13 เมธอด (2)  เข้าไปที่ webcs.mwit.ac.th  การเรียนการสอน  ปฏิบัติการที่ 13 19

20 Method Overloading 20 คือ การที่เมธอดมากกว่าหนึ่งตัวที่อยู่ภายในคลาส เดียวกันมีชื่อเหมือนกัน public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; } public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; }

21 Method Overloading 21 Method overloading สามารถทำได้ถ้าหากว่ามี อย่างน้อยหนึ่งข้อต่อไปนี้เป็นจริง (1) จำนวน parameter ของเมธอดที่จะ overload นั้นไม่เท่ากัน (2) ชนิดข้อมูลของ parameter นั้นต่างกันอย่าง น้อยหนึ่งตัว public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; } public class Date { private int day, month, year; public Date() { day = 1; month = 1; year = 2013; } public Date(int d, int m, int y) { day = d; month = m; year = y; }

22 Method Overloading 22 Method overloading สามารถทำได้ถ้าหากว่ามี อย่างน้อยหนึ่งข้อต่อไปนี้เป็นจริง (1) จำนวน parameter ของเมธอดที่จะ overload นั้นไม่เท่ากัน (2) ชนิดข้อมูลของ parameter นั้นต่างกันอย่าง น้อยหนึ่งตัว public class MethodOverloading { public static int add(int x, int y) { return x+y; } public static int add(int x, int y, int z) { return x+y+z; } public static double add(double x, double y) { return x+y; } public class MethodOverloading { public static int add(int x, int y) { return x+y; } public static int add(int x, int y, int z) { return x+y+z; } public static double add(double x, double y) { return x+y; }

23 Method Overloading 23 Method overloading สามารถทำได้ถ้าหากว่ามี อย่างน้อยหนึ่งข้อต่อไปนี้เป็นจริง (1) จำนวน parameter ของเมธอดที่จะ overload นั้นไม่เท่ากัน (2) ชนิดข้อมูลของ parameter นั้นต่างกันอย่าง น้อยหนึ่งตัว public static int add(int x, int y) { return x+y; } public static double add(int x, int y) { return (double) x+y; } public static int add(int x, int y) { return x+y; } public static double add(int x, int y) { return (double) x+y; } ERROR เพราะ อะไร ?

24 ปฏิบัติการ  เนื้อหาบทที่ 8  หัวข้อที่ 6 – 7 ( หน้า 8 – 10)  ปฏิบัติการที่ 14 เมธอด (3)  เข้าไปที่ webcs.mwit.ac.th  การเรียนการสอน  ปฏิบัติการที่ 14 24


ดาวน์โหลด ppt Chapter 8 Methods TECH30201 Object-Oriented Programming Reading: Ch.8.

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


Ads by Google