Java - Phương thức: Hướng dẫn cho người mới bắt đầu

Xin chào các đại sư phụ Java tương lai! Hôm nay, chúng ta sẽ bắt đầu hành trình hấp dẫn vào thế giới các phương thức Java. Đừng lo lắng nếu bạn chưa từng viết một dòng mã code - chúng ta sẽ bắt đầu từ đầu và dần dần tiến lên. Khi hết hướng dẫn này, bạn sẽ tạo và gọi các phương thức như một chuyên gia!

Java - Methods

Các phương thức Java là gì?

Hãy tưởng tượng bạn đang làm bánh quy. Bạn có công thức mà bạn làm theo mỗi lần, phải không? Trong Java, các phương thức giống như các công thức. Chúng là các khối mã tái sử dụng được để thực hiện các nhiệm vụ cụ thể. Giống như cách bạn có thể sử dụng công thức bánh quy của mình nhiều lần, bạn cũng có thể sử dụng các phương thức nhiều lần trong chương trình của mình.

Tại sao phải sử dụng phương thức?

  1. Tái sử dụng: Viết một lần, sử dụng nhiều lần.
  2. Tổ chức: Giữ cho mã của bạn gọn gàng và có cấu trúc.
  3. Đơn giản hóa: Chia nhỏ các vấn đề phức tạp thành các phần nhỏ hơn, dễ quản lý hơn.

Bây giờ, hãy nhảy vào những chi tiết nitty-gritty của các phương thức Java!

Tạo một phương thức Java

Tạo một phương thức trong Java như việc viết lại công thức yêu thích của bạn. Dưới đây là cấu trúc cơ bản:

public static void greet() {
System.out.println("Xin chào, người học Java!");
}

Hãy phân tích điều này:

  • public: Điều này có nghĩa là các phần khác của chương trình của bạn có thể sử dụng phương thức này.
  • static: Đừng lo lắng về điều này ngay bây giờ; chúng ta sẽ trình bày sau.
  • void: Điều này có nghĩa là phương thức không trả về giá trị (sẽ nói thêm về điều này sau).
  • greet: Đây là tên của phương thức của chúng ta.
  • (): Những dấu ngoặc này có thể chứa các tham số (nguyên liệu cho công thức của chúng ta).

Gọi một phương thức Java

Bây giờ đã tạo ra phương thức của chúng ta, thế nào chúng ta sử dụng nó? Dễ peasy! Chúng ta gọi nó như thế này:

public class MethodExample {
public static void main(String[] args) {
greet();
}

public static void greet() {
System.out.println("Xin chào, người học Java!");
}
}

Khi bạn chạy chương trình này, nó sẽ in ra "Xin chào, người học Java!" vào console. Thật kỳ diệu, phải không?

Từ khóa void với các phương thức Java

Nhớ rồi cách chúng ta sử dụng void trong phương thức greet() của chúng ta? Hãy nói về điều gì đó có nghĩa.

  • void: Phương thức không trả về giá trị.
  • Các loại trả về khác: int, String, boolean, v.v.

Dưới đây là ví dụ về một phương thức trả về giá trị:

public static int addNumbers(int a, int b) {
return a + b;
}

Để sử dụng phương thức này:

public class MethodExample {
public static void main(String[] args) {
int result = addNumbers(5, 3);
System.out.println("Tổng là: " + result);
}

public static int addNumbers(int a, int b) {
return a + b;
}
}

Điều này sẽ in ra "Tổng là: 8" vào console.

Truyền tham số theo giá trị trong các phương thức Java

Các tham số như nguyên liệu trong công thức của chúng ta. Chúng cho phép chúng ta truyền thông tin vào các phương thức. Trong Java, các tham số được truyền theo giá trị. Điều này có nghĩa là một bản sao của giá trị được truyền vào phương thức.

public static void modifyValue(int x) {
x = x * 2;
System.out.println("Trong phương thức: " + x);
}

public static void main(String[] args) {
int num = 10;
System.out.println("Trước khi gọi phương thức: " + num);
modifyValue(num);
System.out.println("Sau khi gọi phương thức: " + num);
}

Output:

Trước khi gọi phương thức: 10
Trong phương thức: 20
Sau khi gọi phương thức: 10

Thấy chưa, giá trị num ban đầu không thay đổi? Điều này là vì Java đã truyền một bản sao của num vào modifyValue().

Tải trọng phương thức Java

Tải trọng phương thức giống như việc có nhiều công thức bánh quy, mỗi một có nguyên liệu khác nhau. Java cho phép bạn có nhiều phương thức cùng tên, miễn là chúng có các danh sách tham số khác nhau.

public static int add(int a, int b) {
return a + b;
}

public static double add(double a, double b) {
return a + b;
}

public static void main(String[] args) {
System.out.println(add(5, 3));        // Gọi phiên bản int
System.out.println(add(5.5, 3.2));    // Gọi phiên bản double
}

Java biết phải gọi phương thức nào dựa trên các đối số bạn cung cấp.

Sử dụng các đối số dòng lệnh

Các đối số dòng lệnh cho phép bạn truyền thông tin vào chương trình của bạn khi bạn chạy nó. Chúng được lưu trữ trong mảng args trong phương thức main.

public class CommandLineExample {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("Xin chào, " + args[0] + "!");
} else {
System.out.println("Xin chào, người lạ!");
}
}
}

Nếu bạn chạy chương trình này với java CommandLineExample Alice, nó sẽ in ra "Xin chào, Alice!".

Từ khóa this trong các phương thức Java

Từ khóa this đề cập đến thể hiện đối tượng hiện tại. Nó rất hữu ích khi bạn có một tham số có cùng tên với biến thể hiện.

public class Person {
private String name;

public void setName(String name) {
this.name = name;  // 'this.name' đề cập đến biến thể hiện
}
}

Các phương thức Java sử dụng đối số động (var-args)

Var-args cho phép bạn truyền một số lượng đối số thay đổi vào phương thức. Nó như có một công thức có thể xử lý bất kỳ số lượng add-ins nào!

public static void printNumbers(int... numbers) {
for (int num : numbers) {
System.out.print(num + " ");
}
System.out.println();
}

public static void main(String[] args) {
printNumbers(1, 2, 3);
printNumbers(4, 5, 6, 7, 8);
}

Điều này sẽ in ra:

1 2 3
4 5 6 7 8

Phương thức finalize()

Phương thức finalize() được gọi bởi bộ đệm rác khi nó xác định rằng không còn có tham chiếu nào đến đối tượng. Nó như một đội làm sạch cho các đối tượng của bạn!

public class FinalizeExample {
protected void finalize() throws Throwable {
System.out.println("Đối tượng đang được thu hồi bởi bộ đệm rác!");
super.finalize();
}

public static void main(String[] args) {
FinalizeExample obj = new FinalizeExample();
obj = null;
System.gc();  // Yêu cầu thu hồi rác
}
}

Nhớ rồi, bạn không nên đáp ứng vào finalize() cho các nhiệm vụ làm sạch quan trọng vì không có lời hứa rằng nó sẽ được gọi.

Kết luận

Xin chúc mừng! Bạn đã bước ra đầu tiên vào thế giới các phương thức Java. Nhớ rồi, luyện tập làm nên vĩ đại, vì vậy đừng sợ thử nghiệm với các khái niệm này. Ngay bây giờ, bạn sẽ viết các phương thức một cách dễ dàng như bạn gấp đôi giày của mình!

Dưới đây là bảng tóm tắt nhanh các phương thức mà chúng ta đã trình bày:

Loại phương thức Ví dụ
Phương thức void public static void greet() { ... }
Phương thức trả về giá trị public static int addNumbers(int a, int b) { ... }
Phương thức tải trọng public static int add(int a, int b) { ... }
public static double add(double a, double b) { ... }
Phương thức động public static void printNumbers(int... numbers) { ... }
Phương thức finalize protected void finalize() throws Throwable { ... }

Tiếp tục lập trình, tiếp tục học hỏi, và nhất quan quan, hãy thư giãn! Thế giới của Java rộng lớn và hấp dẫn, và bạn đã chỉ cảm nhận được bề mặt nó. Chúc mừng lập trình!

Credits: Image by storyset