© Khmer Angkor Academy - sophearithput168

Methods

Methods ក្នុង Java

🔧 Method គឺជាអ្វី?

Method គឺ block នៃកូដ ដែលធ្វើការជាក់លាក់មួយ។ វាដូចជា function ក្នុងភាសាដែទ។

ឧទាហរណ៍ក្នុងជីវិតពិត:

  • ម៉ាស៊ីនគណនា: ម៉ាស៊ីនគណនា → សម្រេចមុខងារ (method)
  • បោះពុម្ពសារ: ចុច button → បោះពុម្ព (method)
  • បើកទ្វារ: ចុច switch → បើកព័ង (method)

📚 ហេតុអ្វីត្រូវការ Methods?

  1. Code Reusability: សរសេរម្តង ប្រើបានច្រើនដង
  2. កំណត់រចនាសម្ព័ន្ធ: កូដទៅជា blocks តូចៗ
  3. ងាយ Maintain: កែមួយទី ប្តូរមួយដង
  4. Testing: Test method មួយៗ ឥតពាស់ព័ន្ធគ្នា
  5. Modularity: កម្មវិធីទៅជា modules តូចៗ

📝 រចនាសម្ព័ន្ធ Method

accessModifier returnType methodName(parameters) {
    // method body
    return value;  // ប្រសិនបើ return type មិនមែន void
}

🔍 ផ្នែករបស់ Method:

  1. Access Modifier: public, private, protected
  2. Return Type: void, int, String, etc.
  3. Method Name: ឈ្មោះ method (camelCase)
  4. Parameters: Input values (អាចគ្មាន)
  5. Method Body: { } កូដដែលរត់

🎯 Method Signature

Method signature = ឈ្មោះ method + parameter types

// Signature: greet()
public void greet() { }

// Signature: add(int, int)
public int add(int a, int b) { }

// Signature: display(String)
public void display(String msg) { }

🔢 ប្រភេទ Methods

ប្រភេទ ពន្យល់ ឧទាហរណ៍
void មិន return អ្វី public void greet() { }
return value Return តម្លៃ public int add() { return 5; }
static ហៅដោយមិនចាំបាច់ object public static void main() { }
non-static ត្រូវការ object public void display() { }
Java Code
Click "Run" to execute the Java code

📥 Parameters & Return Values

📥 Parameters (Input)

Parameters គឺ input values ដែល method ទទួលបាន។

// មាន parameters
public void greet(String name) {
    System.out.println("Hello, " + name);
}

// ហៅ method
greet("John");  // "John" ជា argument

📦 Return Values (Output)

Return values គឺ output ដែល method ផ្តល់ស្រុល។

public int add(int a, int b) {
    return a + b;  // Return ផលបូក
}

// អានលទ្ធផល
int result = add(10, 20);  // result = 30

🔄 Parameter vs Argument

ពាក្យ ន័យ ឧទាហរណ៍
Parameter Variable ក្នុង method definition void greet(String name)
Argument តម្លៃពិតនៅពេលហៅ method greet("John")

🔢 Multiple Parameters

public double calculatePrice(double price, int quantity, double tax) {
    double subtotal = price * quantity;
    double total = subtotal + (subtotal * tax);
    return total;
}

// ហៅ
double finalPrice = calculatePrice(100.0, 3, 0.10);
// 100 * 3 = 300
// 300 + (300 * 0.10) = 330.0

📤 void vs return

void return type
មិន return អ្វី Return value
ធ្វើ action គណនា ឬ បង្កើតអ្វីមួយ
Print, save, update Calculate, get, find
void print() {
    System.out.println();
}
int getAge() {
    return 25;
}

💡 Return Best Practices

  • ប្រើ void: នៅពេលគ្រាន់តែ action
  • ប្រើ return: នៅពេលចាំបាច់បានលទ្ធផល
  • Single Responsibility: method មួយត្រូវធ្វើមួយការងារ
  • Clear naming: ឈ្មោះត្រូវបង្ហាញមុខងារ
Java Code
Click "Run" to execute the Java code

🔁 Method Overloading

🤹 Overloading គឺជាអ្វី?

Method Overloading គឺការមាន methods ច្រើនឈ្មោះដូចគ្នា ប៉ុន្តែ parameters ខុសគ្នា

🔑 ចំណុចសម្រាប់ Overloading:

  1. ឈ្មោះដែលគ្នា
  2. Parameters ខុសគ្នា:
    • ចំនួន parameters ខុសគ្នា
    • ប្រភេទ parameters ខុសគ្នា
    • លំដាប់ parameters ខុសគ្នា

✅ Valid Overloading

// ខុសចំនួន parameters
public void print(String msg) { }
public void print(String msg, int times) { }

// ខុសប្រភេទ parameters
public int add(int a, int b) { }
public double add(double a, double b) { }

// ខុសលំដាប់ parameters
public void display(int num) { }
public void display(String text) { }

❌ Invalid Overloading

// ❌ គ្រាន់តែ return type ខុសគ្នា
public int getValue() { }
public String getValue() { }  // Error!

// ❌ Parameter names មិនទាក់ទង
public void test(int a) { }
public void test(int b) { }  // Error!

🎯 ឧទាហរណ៍ការប្រើ Overloading

public class Calculator {
    // Add 2 numbers
    public int add(int a, int b) {
        return a + b;
    }
    
    // Add 3 numbers
    public int add(int a, int b, int c) {
        return a + b + c;
    }
    
    // Add doubles
    public double add(double a, double b) {
        return a + b;
    }
}

Calculator calc = new Calculator();
calc.add(5, 10);          // ហៅ method 1
calc.add(5, 10, 15);      // ហៅ method 2
calc.add(5.5, 10.5);      // ហៅ method 3

💡 ប្រយោជន៍ Overloading

  • Flexibility: អាចហៅ method ដោយវិធីខុសគ្នា
  • Convenience: ឈ្មោះដែលគ្នា មុខងារខុសគ្នា
  • Readability: កូដងាយអាន

🔍 Constructor vs Method Overloading

លក្ខណៈ Constructor Overloading Method Overloading
ឈ្មោះ ស្មើ class អ្វីក៏បាន
ប្រើ ចំណាត់ object សកម្មភាពណាមួយ
Return គ្មាន return type មាន return type
Java Code
Click "Run" to execute the Java code