17:36
0
Java (đọc như "Gia-va") là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy. Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C#...
Bài này sẽ viết cho bạn 1 ứng dụng căn bản về việc sử dụng 1 tài khoản ngần hàng để thực hiện 1 số thao tác cơ bản:
  1. Nạp tiền
  2. Rút tiền
  3. Chuyển tiền
  4. ....
Trước tiên bạn sẽ tạo 1 class Account.java để khai báo thông tin chi tiết cần thiết của 1 tài khoản và mình sẽ xử lý những tác vụ trong lớp này luôn.
Code Class Account.java
package Code04;
import java.text.NumberFormat;

import javax.swing.JOptionPane;

public class Account {
	
	private NumberFormat fmt = NumberFormat.getCurrencyInstance();
	private final double RATE = 0.035;
	private String TenTK;
	private long SoTK;
	private double SoDU;
	
	
	public String getTenTK() {
		return TenTK;
	}
	public void setTenTK(String tenTK) {
		TenTK = tenTK;
	}
	public long getSoTK() {
		return SoTK;
	}
	public void setSoTK(long soTK) {
		SoTK = soTK;
	}
	public double getSoDU() {
		return SoDU;
	}
	
	public void setSoDU(double soDU) {
		SoDU = soDU;
	}
	
	public double Deposit(double amout)
	{
		if (amout < 0) {
			System.out.println();
			JOptionPane.showMessageDialog(null, "SỐ TIỀN BẠN NẠP PHẢI LỚN HƠN 0");
			System.out.println("Số TK: " + SoTK + "\t Số dư là: " + fmt.format(SoDU));
		}
		else {
			SoDU += amout;
		}
		return SoDU;		
	}
	
	public double WithDrawing(double amout, double fee)
	{
		SoDU += fee;		
		if (amout < 0) {
			System.out.println();
			JOptionPane.showMessageDialog(null, "SỐ TIỀN BẠN RÚT PHẢI LỚN HƠN 0");
			System.out.println("Số TK: " + SoTK + "\t Số dư là: " + fmt.format(SoDU));
		}
		else if (amout > SoDU) {
			System.out.println();
			JOptionPane.showMessageDialog(null, "SỐ TIỀN BẠN RÚT PHẢI NHỎ HƠN SỐ DƯ");
			System.out.println("Số TK: " + SoTK + "\t Số dư là: " + fmt.format(SoDU));
		}
		else 
			SoDU -= amout;
		return SoDU;
	}
	
	public void ChuyenTien(Account TKNhan, double SoTienChuyen)
	{
		if (SoTienChuyen > SoDU) {
			System.out.println();
			JOptionPane.showMessageDialog(null, "SỐ TIỀN BẠN CHUYỂN PHẢI NHỎ HƠN SỐ DƯ");
			System.out.println("Số TK: " + SoTK + "\t Số dư là: " + fmt.format(SoDU));
		}
		else 
		{
			//----------- Tru so tien
			this.WithDrawing(SoTienChuyen, 2);			
			//----------- Cong so tien
			TKNhan.Deposit(SoTienChuyen);
		}
	}
	
	// Constructor có tham số
	public Account(String tenTK, long soTK, double soDU) {
		TenTK = tenTK;
		SoTK = soTK;
		SoDU = soDU;		
	}	
	
	// Constructor Rỗng
	public Account() {
		
	}	
	@Override
	public String toString() {
String thongtin = "Họ tên: " + TenTK + "\t Số Tài khoản: " + SoTK + "\t Số dư: " + SoDU;
		return thongtin;
	}	
}

Ở Class Banking.java thì bạn sẽ gọi lại những thao tác và gán cho tài khoản đó để có 1 thông tin.
Vd: Họ tên: LÝ TRẦN DEMO     Số Tài khoản: 11353811     Số dư: 100.0
Code Class Banking.java
package Code04;

import javax.swing.JOptionPane;

public class Banking {
	
	static double Nhap(String thongbao)
	{
		try {
			double so;
			String chuoiso; 
			chuoiso = JOptionPane.showInputDialog(thongbao);
			so = Double.parseDouble(chuoiso);
			return so;
		} catch (Exception e) {
			// TODO: handle exception
		}
		return -1;
	}
	
	public static void main(String[] args) {
		
		Account obj1 = new Account();
		obj1.setTenTK("NGUYỄN TRẦN NGỌC TRỌNG");
		obj1.setSoTK(11353811);
		obj1.setSoDU(100);
		System.out.println(obj1);
		// HÀM NẠP SỐ DƯ
		//double n = Nhap("Ban hay nhap so du");
		//-------------
		Account obj2 = new Account("VĂN NGUYỄN TIẾN ĐẠT", 11353891, 500);
		System.out.println(obj2);
		
		//HÀM NẠP TIỀN
		double tienap = Nhap("Bạn hãy nhập số tiền cần nạp: ");
		if (tienap == -1) {
			System.err.println("Lỗi");
			return;
		}
		obj2.Deposit(tienap);
		System.out.println(obj2);
		
		//HÀM RÚT TIỀN
		double tienrut = Nhap("Bạn hãy nhập số tiền cần rút: ");
		if (tienrut == -1) {
			System.err.println("Lỗi");
			return;
		}
		obj2.WithDrawing(tienrut, 2);
		System.out.println(obj2);
		
		//HÀM CHUYỂN TIỀN
		double tienchuyen = Nhap("Bạn hãy nhập số tiền cần chuyển: ");
		if (tienchuyen == -1) {
			System.err.println("Lỗi");
			return;
		}		
		obj2.ChuyenTien(obj1, tienchuyen);
		System.out.println("------------ NGƯỜI GỬI TIỀN");
		System.out.println(obj2);
		System.out.println("------------ NGƯỜI NHẬN TIỀN");
		System.out.println(obj1);
	}
}