Thiết kế chương trình trong Java

Trong Java, việc thiết kế và sử dụng phương thức đóng vai trò quan trọng trong việc tạo cấu trúc cho ứng dụng. Dưới đây là một số khái niệm cơ bản về cách làm việc với phương thức trong Java.

Xây dựng và sử dụng phương thức

Một phương thức được định nghĩa bao gồm hai phần chính:
  • Khai báo phương thức.
  • Nội dung của phương thức (phần thân).
Cú pháp tổng quát:
[thuộc tính] kiểuTrảVề tênPhươngThức([danhSáchThamSố]) {
    // Nội dung phương thức
}

Phương thức truy cập và chỉnh sửa

Phương thức dùng để trả về giá trị của biến thành viên được gọi là **phương thức truy cập** (getter). Phương thức dùng để thay đổi giá trị của biến thành viên được gọi là **phương thức chỉnh sửa** (setter). Ví dụ:
double layLuong() {} // Getter
void datLuong(double l) {} // Setter

Gọi phương thức

Gọi phương thức thực hiện trên đối tượng hoặc trực tiếp từ lớp.
  • Sử dụng tham chiếu đối tượng để gọi phương thức thành viên.
  • Sử dụng tên lớp để gọi phương thức tĩnh.

Truyền tham số vào phương thức

Khi gọi phương thức có tham số, bạn cần cung cấp các giá trị tương ứng.
  • Java sử dụng cơ chế truyền theo giá trị (pass-by-value).
  • Với kiểu tham chiếu, thay vì giá trị, địa chỉ của đối tượng sẽ được truyền.

Tải nhiều phương thức (Overloading)

Java cho phép định nghĩa nhiều phương thức cùng tên nhưng khác nhau về danh sách tham số. Điều kiện để phân biệt chúng là:
  • Số lượng tham số khác nhau.
  • Kiểu dữ liệu của tham số khác nhau.

Phương thức khởi tạo (Constructor)

Phương thức khởi tạo được sử dụng để khởi tạo trạng thái ban đầu của đối tượng khi nó được tạo ra. Nó có những đặc điểm sau:
  • Tên phải trùng với tên lớp.
  • Không có kiểu trả về, kể cả void.
  • Được gọi tự động bằng từ khóa new.
Ví dụ:
public LopHoc([thamSố]) {
    // Khởi tạo đối tượng
}

Từ khóa this

Từ khóa this được dùng để tham chiếu đến chính đối tượng hiện tại.
  • Dùng để phân biệt giữa biến cục bộ và biến thành viên.
  • Dùng để gọi phương thức khởi tạo khác trong cùng lớp.
Ví dụ:
public HinhTron(double r) {
    this(); // Gọi phương thức khởi tạo không tham số
    banKinh = r;
}

Ví dụ minh họa

Xem xét ví dụ dưới đây về cách tạo và sử dụng phương thức:
package vi_du;

public class HinhTru {

    private double banKinh;
    private int chieuCao;
    private double pi = 3.14;
    private String mauSac;

    public HinhTru() {
        this(2.5, 5, "đỏ");
    }

    public HinhTru(double r, int h, String str) {
        banKinh = r;
        chieuCao = h;
        mauSac = str;
    }

    public void inThongTin() {
        System.out.println("Bán kính: " + banKinh);
        System.out.println("Chiều cao: " + chieuCao);
        System.out.println("Màu sắc: " + mauSac);
    }

    public double tinhDienTichDay() {
        return pi * banKinh * banKinh;
    }

    public double tinhTheTich() {
        return tinhDienTichDay() * chieuCao;
    }

    public static void main(String[] args) {
        HinhTru ht = new HinhTru();
        System.out.println("Diện tích đáy: " + ht.tinhDienTichDay());
        System.out.println("Thể tích: " + ht.tinhTheTich());
        ht.inThongTin();
    }
}

Biến và phương thức tĩnh

Biến và phương thức tĩnh được đánh dấu bằng từ khóa static.
  • Chia sẻ giữa tất cả các đối tượng của lớp.
  • Truy cập thông qua tên lớp mà không cần tạo đối tượng.
Ví dụ về hằng số trong Math:
public static final double PI = 3.14;

Quản lý vòng đời đối tượng

Java tự động giải phóng bộ nhớ khi đối tượng không còn được tham chiếu tới nữa thông qua cơ chế thu gom rác (Garbage Collection).

Nhập khẩu gói và lớp

Sử dụng từ khóa import để nhập các lớp từ gói khác. Ví dụ:
import java.util.Scanner;

Thẻ: Java object-oriented-programming constructor

Đăng vào ngày 14 tháng 7 lúc 15:07