Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
NhanVien.java
package baitaptinhluong;
import java.util.Scanner;
public abstract class NhanVien {
private String tenNhanVien;
protected long luongNhanVien;
Scanner scanner = new Scanner(System.in);
public NhanVien() {
super();
}
public NhanVien(String tenNhanVien, long luongNhanVien) {
super();
this.tenNhanVien = tenNhanVien;
this.luongNhanVien = luongNhanVien;
}
public void nhapThongTin() {
System.out.print("Nhập tên nhân viên: ");
tenNhanVien = scanner.nextLine();
}
// khai báp phương thức tinhLuong() là phương thức trừu tượng
public abstract void tinhLuong();
@Override
public String toString() {
return "Tên nhân viên: " + this.tenNhanVien + ", lương nhân viên: " +
this.luongNhanVien + " VND";
}
}
NhanVienToanThoiGian.java
package baitaptinhluong;
public class NhanVienToanThoiGian extends NhanVien {
private int soNgayLamThem, choose;
private String loaiNhanVien;
private static long LUONG_NHAN_VIEN_LA_SEP = 20000000;
private static long LUONG_NHAN_VIEN_BINH_THUONG = 10000000;
private static long LUONG_LAM_THEM = 800000;
public NhanVienToanThoiGian() {
super();
}
public NhanVienToanThoiGian(int soNgayLamThem, String loaiNhanVien) {
super();
this.soNgayLamThem = soNgayLamThem;
this.loaiNhanVien = loaiNhanVien;
}
public int getSoNgayLamThem() {
return soNgayLamThem;
}
public void setSoNgayLamThem(int soNgayLamThem) {
this.soNgayLamThem = soNgayLamThem;
}
public String getLoaiNhanVien() {
return loaiNhanVien;
}
public void setLoaiNhanVien(String loaiNhanVien) {
this.loaiNhanVien = loaiNhanVien;
}
public void nhapThongTin() {
super.nhapThongTin();
System.out.print("Nhập số ngày làm thêm: ");
soNgayLamThem = scanner.nextInt();
System.out.print("Nhập loại nhân viên (1 - bình thường, 2 - sếp): ");
choose = scanner.nextInt();
switch (choose) {
case 1:
loaiNhanVien = "Nhân viên bình thường";
break;
case 2:
loaiNhanVien = "Sếp";
break;
default:
System.out.println("Nhập loại nhân viên không đúng!");
break;
}
}
@Override
public void tinhLuong() {
if (loaiNhanVien.equals("Nhân viên bình thường")) {
luongNhanVien = LUONG_NHAN_VIEN_BINH_THUONG + this.soNgayLamThem * LUONG_LAM_THEM;
} else if (loaiNhanVien.equals("Sếp")) {
luongNhanVien = LUONG_NHAN_VIEN_LA_SEP + this.soNgayLamThem * LUONG_LAM_THEM;
}
}
@Override
public String toString() {
return super.toString() + ", loại nhân viên: " + this.loaiNhanVien +
", số ngày làm thêm: " + this.soNgayLamThem;
}
}
Bài viết này được đăng tại [free tuts .net]
NhanVienThoiVu.java
package baitaptinhluong;
public class NhanVienThoiVu extends NhanVien {
private int gioLamViec;
private static long LUONG_NHAN_VIEN_THOI_VU_MOT_GIO = 100000;
public NhanVienThoiVu() {
super();
}
public NhanVienThoiVu(int gioLamViec) {
super();
this.gioLamViec = gioLamViec;
}
public void nhapThongTin() {
super.nhapThongTin();
System.out.print("Nhập số giờ làm việc: ");
gioLamViec = scanner.nextInt();
}
@Override
public void tinhLuong() {
luongNhanVien = LUONG_NHAN_VIEN_THOI_VU_MOT_GIO * this.gioLamViec;
}
@Override
public String toString() {
return super.toString() + ", giờ làm việc: " + this.gioLamViec;
}
}
Main.java
package baitaptinhluong;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int soNhanVienToanThoiGian, soNhanVienThoiVu;
Scanner scanner = new Scanner(System.in);
NhanVien nhanVien;
ArrayList<NhanVien> arrNhanVien = new ArrayList<>();
System.out.print("Nhập số nhân viên toàn thời gian: ");
soNhanVienToanThoiGian = scanner.nextInt();
System.out.println("NHẬP THÔNG TIN NHÂN VIÊN TOÀN THỜI GIAN");
for (int i = 0; i < soNhanVienToanThoiGian; i++) {
System.out.println("Nhập thông tin nhân viên toàn thời gian thứ " + (i + 1) + ": ");
nhanVien = new NhanVienToanThoiGian(); // lúc này đối tượng nhanVien đóng vai trò là nhân viên toàn thời gian
nhanVien.nhapThongTin();
arrNhanVien.add(nhanVien);
}
System.out.print("Nhập số nhân viên thời vụ: ");
soNhanVienThoiVu = scanner.nextInt();
System.out.println("NHẬP THÔNG TIN NHÂN VIÊN THỜI VỤ");
for (int i = 0; i < soNhanVienThoiVu; i++) {
System.out.println("Nhập thông tin nhân viên thời vụ thứ " + (i + 1) + ": ");
nhanVien = new NhanVienThoiVu(); // còn bây giờ đối tượng nhanVien đóng vai trò là nhân viên thời vụ
nhanVien.nhapThongTin();
arrNhanVien.add(nhanVien);
}
System.out.println("THÔNG TIN NHÂN VIÊN");
for (NhanVien nv : arrNhanVien) {
nv.tinhLuong();
System.out.println(nv.toString());
}
}
}