Skip to Content

เมธอด (Method)

วันนี้เราจะมาเรียนรู้เกี่ยวกับเมธอด (Methods) ใน Java กัน เมธอดเป็นบล็อกของโค้ดที่ทำงานเฉพาะอย่าง และสามารถเรียกใช้ซ้ำได้

เมธอดคืออะไร?

เมธอดเป็นชุดคำสั่งที่ทำงานเฉพาะอย่าง เปรียบเสมือนฟังก์ชันในคณิตศาสตร์ ที่รับค่าเข้าไป ประมวลผล และส่งค่ากลับมา

โครงสร้างของเมธอด

ตัวปรับการเข้าถึง ประเภทค่าที่ส่งคืน ชื่อเมธอด(รายการพารามิเตอร์) { // ส่วนของโค้ดที่ทำงาน return ค่าที่ส่งคืน; // ถ้ามี }

ตัวอย่าง:

public int บวกเลข(int a, int b) { return a + b; }

พารามิเตอร์ของเมธอด (Method Parameters)

พารามิเตอร์คือข้อมูลที่ส่งเข้าไปในเมธอด

การส่งค่าแบบ Pass by Value

Java ใช้การส่งค่าแบบ Pass by Value เสมอ นั่นคือ ส่งสำเนาของค่าเข้าไปในเมธอด

public void เปลี่ยนค่า(int x) { x = 10; // ไม่มีผลต่อตัวแปรที่ส่งเข้ามา } public static void main(String[] args) { int a = 5; เปลี่ยนค่า(a); System.out.println(a); // ยังคงแสดง 5 }

การส่งออบเจ็กต์เป็นพารามิเตอร์

เมื่อส่งออบเจ็กต์ Java ส่งสำเนาของการอ้างอิง (reference) ไป:

class คน { String ชื่อ; คน(String ชื่อ) { this.ชื่อ = ชื่อ; } } public void เปลี่ยนชื่อ(คน บุคคล) { บุคคล.ชื่อ = "ใหม่"; // มีผลต่อออบเจ็กต์จริง } public static void main(String[] args) { คน สมชาย = new คน("สมชาย"); เปลี่ยนชื่อ(สมชาย); System.out.println(สมชาย.ชื่อ); // แสดง "ใหม่" }

การโอเวอร์โหลดเมธอด (Method Overloading)

การโอเวอร์โหลดคือการมีหลายเมธอดที่ชื่อเหมือนกันแต่พารามิเตอร์ต่างกัน:

public int บวกเลข(int a, int b) { return a + b; } public double บวกเลข(double a, double b) { return a + b; } public int บวกเลข(int a, int b, int c) { return a + b + c; }

Java จะเลือกเมธอดที่เหมาะสมตามประเภทและจำนวนของอาร์กิวเมนต์ที่ส่งเข้าไป

ขอบเขต (Scope) ของตัวแปร

ขอบเขตของตัวแปรคือบริเวณในโค้ดที่สามารถเข้าถึงตัวแปรนั้นได้

ตัวแปรสมาชิก (Instance Variables)

ประกาศนอกเมธอด สามารถเข้าถึงได้จากทุกเมธอดในคลาส:

public class ตัวอย่างขอบเขต { private int ตัวแปรสมาชิก = 10; // ตัวแปรสมาชิก public void แสดงค่า() { System.out.println(ตัวแปรสมาชิก); // สามารถเข้าถึงได้ } }

ตัวแปรเฉพาะที่ (Local Variables)

ประกาศภายในเมธอด เข้าถึงได้เฉพาะภายในเมธอดนั้น:

public void ตัวอย่างเมธอด() { int ตัวแปรเฉพาะที่ = 20; // ตัวแปรเฉพาะที่ System.out.println(ตัวแปรเฉพาะที่); // สามารถเข้าถึงได้เฉพาะในเมธอดนี้ }

ตัวแปร Static

เป็นตัวแปรที่ใช้ร่วมกันในทุกอินสแตนซ์ของคลาส:

public class ตัวอย่างStatic { private static int นับจำนวน = 0; // ตัวแปร static public ตัวอย่างStatic() { นับจำนวน++; // เพิ่มค่าทุกครั้งที่สร้างอินสแตนซ์ใหม่ } public static int จำนวนอินสแตนซ์() { return นับจำนวน; } }

ตัวอย่างการใช้งานจริง

ลองมาดูตัวอย่างโปรแกรมที่ใช้เมธอด การโอเวอร์โหลด และขอบเขตต่างๆ กัน:

public class โปรแกรมคำนวณพื้นที่ { private static final double PI = 3.14159; // ตัวแปร static final // เมธอดคำนวณพื้นที่วงกลม public double คำนวณพื้นที่(double รัศมี) { return PI * รัศมี * รัศมี; } // เมธอดคำนวณพื้นที่สี่เหลี่ยม (โอเวอร์โหลด) public double คำนวณพื้นที่(double ความกว้าง, double ความยาว) { return ความกว้าง * ความยาว; } // เมธอดคำนวณพื้นที่สามเหลี่ยม (โอเวอร์โหลด) public double คำนวณพื้นที่(double ฐาน, double สูง, String รูปร่าง) { if (รูปร่าง.equalsIgnoreCase("สามเหลี่ยม")) { return 0.5 * ฐาน * สูง; } else { return -1; // ค่าผิดพลาด } } public static void main(String[] args) { โปรแกรมคำนวณพื้นที่ เครื่องคำนวณ = new โปรแกรมคำนวณพื้นที่(); System.out.println("พื้นที่วงกลม: " + เครื่องคำนวณ.คำนวณพื้นที่(5)); System.out.println("พื้นที่สี่เหลี่ยม: " + เครื่องคำนวณ.คำนวณพื้นที่(4, 5)); System.out.println("พื้นที่สามเหลี่ยม: " + เครื่องคำนวณ.คำนวณพื้นที่(3, 4, "สามเหลี่ยม")); } }

สรุป

เมธอดเป็นส่วนสำคัญในการเขียนโปรแกรม Java ช่วยให้เราสามารถจัดระเบียบโค้ด ทำให้โค้ดนำกลับมาใช้ใหม่ได้ และทำให้โปรแกรมอ่านและบำรุงรักษาได้ง่ายขึ้น การเข้าใจเรื่องพารามิเตอร์ การโอเวอร์โหลด และขอบเขตของตัวแปร จะช่วยให้คุณสามารถออกแบบและเขียนโปรแกรม Java ได้อย่างมีประสิทธิภาพมากขึ้น

ปรับปรุงล่าสุด