Bài 8, Ngân hàng ABC muốn lưu giữ thông tin của mỗi tài khoản như sau:
  • Số tài khoản
  • Tên tài khoản
  • Số tiền trong tài khoản
a, Thiết kế lớp taiKhoan để lưu trữ các thông tin, lớp gồm các phương thức sau:
  • Phương thức khởi tạo (constructor): có 2 phương thức khởi tạo( mặc định và đầy đủ tham số)
  • Các phương thức set, get cho từng thuộc tính
  • Phương thức toString để trả về chuỗi chứa toàn bộ thông tin tài khoản, yêu cầu định dạng tiền tệ
b, Thêm các thông tin sau vào lớp taiKhoan:
  • Hằng số lãi suất có giá trị khởi tạo là 0.05
  • Phương thức khởi tạo có 2 đối số: Số tài khoản, Tên tài khoản. Phương thức khởi tạo này có số tiền mặc định là 100.
  • Phương thức gửi tiền vào tài khoản: Số tiền trong tài khoản+ số tiền nạp vào.
  • Phương thức rút tiền: Số tiền hiện tại trong tài khoản - (Số tiền muốn rút+ Phí rút tiền)
  • Phương thức đáo hạn: Mỗi lần đến kỳ rút đáo hạn thì số tiền trong tài khoản = số tiền trong tài khoản + Số tiền trong tài khoản*Laisuat.
Chú ý: Mỗi thao tác phải kiểm tra số tiền gửi, rút có hợp lệ hay không. Ví dụ nhập vào <0, tiền rút nhiều hơn tiền trong tài khoản thì thông báo không hợp lệ và yêu cầu nhập lại.
c, Xây dựng lớp TaiKhoanTest có chứa các phương thức main để thực hiện test các chức năng trên.

Code đầy đủ: 

Với yêu cầu đề bài, bài này sử dụng try catch throw để check lỗi khi nhập sai. Có cách khác là sử dụng if else để check lỗi.
Tạo 2 class là TAIKHOAN và TAIKHOANTEST để chạy.

class TAIKHOAN.java

package TH3.bai8;
import java.util.*;
public class TAIKHOAN {
public int soTaiKhoan;
public String tenTaiKhoan;
public double soTien;
public final double laiSuat = 0.05;
public TAIKHOAN() {

soTaiKhoan=0;
tenTaiKhoan= "";
soTien = 0;
}
public TAIKHOAN(int soTaiKhoan, String tenTaiKhoan, double soTien) {

super();
this.soTaiKhoan= soTaiKhoan;
this.soTien= soTien;
this.tenTaiKhoan= tenTaiKhoan;
}

public void setSoTaiKhoan(int soTaiKhoan) {
this.soTaiKhoan = soTaiKhoan;
}
public void setSoTien(float soTien) {
this.soTien = soTien;
}
public void setTenTaiKhoan(String tenTaiKhoan) {
this.tenTaiKhoan = tenTaiKhoan;
}

public double getSoTien() {
return soTien;
}
public int getSoTaiKhoan() {
return soTaiKhoan;
}
public String getTenTaiKhoan() {
return tenTaiKhoan;
}
public TAIKHOAN(int soTaiKhoan, String tenTaiKhoan) {
this.soTien = 100;
}
public boolean guiTien(double tienGui) throws Exception {
if(tienGui<0) {
throw new Exception("So tien nhap khong hop le.");

}
else {
this.soTien += tienGui;
return true;
}
}
public boolean rutTien(double tienMuonRut, double phiRut) throws Exception {
if(tienMuonRut <0 ||(tienMuonRut+phiRut)> soTien){
throw new Exception("Khong rut duoc, kiem tra so du va nhap lai.");

}
else {
soTien -= tienMuonRut+ phiRut;
return true;
}
}
public void daoHan() {
soTien += soTien*laiSuat;
}
@Override
public String toString() {
return "\nTai khoan: {" +
"soTaiKhoan=" + soTaiKhoan +
", tenTaiKhoan='" + tenTaiKhoan + '\'' +
", soTien=" + soTien +
'}';
}
}

class TAIKHOANTEST

xem code chi tiết ở mục code đầy đủ

Kết quả test