0% found this document useful (0 votes)
6 views14 pages

OOP

123

Uploaded by

Lợi Phan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views14 pages

OOP

123

Uploaded by

Lợi Phan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Class sinh viên

package quanlythuvien; // ham nhap


import java.util.Scanner; public void nhapThongTin(Scanner sc) {
public class SinhVien { System.out.print("\tNhap ho ten: ");
// thuoc tinh hoTen = sc.nextLine();
protected String hoTen; System.out.print("\tNhap ma sinh vien: ");
protected String maSV; maSV = sc.nextLine();
protected String ngaySinh; System.out.print("\tNhap ngay sinh theo dinh dang
protected String lop; DD-MM-YYYY: ");
// phuong thuc ngaySinh = sc.nextLine();
// ham khoi tao khong doi so System.out.print("\tNhap lop: ");
public SinhVien() { lop = sc.nextLine();
} }
// ham khoi tao co doi so // ham hien thi
public SinhVien(String hoTen, String maSV, public void hienThiThongTin() {
String ngaySinh, String lop) { System.out.println("\tHo ten: " + hoTen);
this.hoTen = hoTen; System.out.println("\tNgay sinh: " + ngaySinh);
this.maSV = maSV; System.out.println("\tMa sinh vien: " + maSV);
this.ngaySinh = ngaySinh; System.out.println("\tLop: " + lop);
this.lop = lop; }
} }
Class thẻ mượn

package quanlythuvien; String strNgayTra = "31-03-2023";


import java.text.ParseException; hanTra = strToDate(strNgayTra);
import java.text.SimpleDateFormat; System.out.println("\tNhap so hieu: ");
import java.util.Date; soHieu = sc.nextLine();
import java.util.Scanner; }
public class TheMuon extends SinhVien { private Date strToDate(String strNgayMuon) {
// thuoc tinh Date date = null;
private int soMuon; SimpleDateFormat sdf = new SimpleDateFormat("dd-
private Date ngayMuon; MM-yyyy");
private Date hanTra; try {
private String soHieu; date = sdf.parse(strNgayMuon);
// phuong thuc } catch (ParseException e) {
// ham khoi tao khong doi so System.out.println("Loi dinh dang ngay
public TheMuon() { thang!");
} }
// ham khoi tao co doi so return date;
public TheMuon(int soMuon, Date ngayMuon, String soHieu) { }
this.soMuon = soMuon; // ham hien thi
this.ngayMuon = ngayMuon; public void hienThiThongTin()
this.soHieu = soHieu; {
} super.hienThiThongTin();
// ham nhap System.out.println("\tSo phieu muon: " + soMuon);
public void nhapThongTin(Scanner sc) { System.out.println("\tNgay muon: " + ngayMuon);
super.nhapThongTin(sc); System.out.println("\tHan tra: " + hanTra);
System.out.print("\tNhap so muon: "); System.out.println("\tSo hieu: " + soHieu);
soMuon = sc.nextInt(); }
sc.nextLine(); // ham lay ra thong tin ve han tra
System.out.print("\tNhap ngay muon: "); public Date getHanTra() {
String strNgayMuon = sc.nextLine(); return hanTra;
ngayMuon = strToDate(strNgayMuon); }
}
Class quản lý
package quanlythuvien; int n = sc.nextInt();
import java.util.ArrayList; sc.nextLine();
import java.util.Scanner; System.out.println("Nhap vao danh sach:");
public class QuanLy { for (int i = 0; i < n; i++) {
// thuoc tinh System.out.println("The muon thu " + (i + 1)
private ArrayList<TheMuon> ds; + " la:");
// phuong thuc theMuon = new TheMuon();
// ham khoi tao khong doi so theMuon.nhapThongTin(sc);
public QuanLy() { themTheMuon(theMuon);
ds = new ArrayList<TheMuon>(10); }
} }
// ham them the muon vao danh sach // ham hien thi danh sach
public void themTheMuon(TheMuon theMuon) { public void hienThiDanhSachTraCuoiThang() {
ds.add(theMuon); for (TheMuon the : ds) {
} if (the.getHanTra().getDate() == 31 ||
// ham nhap vao danh sach the.getHanTra().getDate() == 30) {
public void nhapDanhSach(Scanner sc) { the.hienThiThongTin();
TheMuon theMuon; }
System.out.print("Nhap vao so luong the muon: "); }
}
}
Class Kết quả

package quanlythuvien; QuanLy ql = new QuanLy();


import java.util.Scanner; ql.nhapDanhSach(sc);
public class KQ { System.out.println("Danh sach sinh vien tra sach vao
public static void main(String[ ] args) { cuoi thang:");
Scanner sc = new Scanner(System.in); ql.hienThiDanhSachTraCuoiThang();
sc.close();
}
}

Class Người:

public class Nguoi { }


private String hoTen; public String getNgaySinh() {
private String ngaySinh; return ngaySinh;
private String soCMND; }
public Nguoi(String hoTen, String ngaySinh, String soCMND) { public void setNgaySinh(String ngaySinh) {
this.hoTen = hoTen; this.ngaySinh = ngaySinh;
this.ngaySinh = ngaySinh; }
this.soCMND = soCMND; public String getSoCMND() {
} return soCMND;
public String getHoTen() { }
return hoTen; public void setSoCMND(String soCMND) {
} this.soCMND = soCMND;
public void setHoTen(String hoTen) { }
this.hoTen = hoTen; }
Class khách sạn

package mainbai2_buoi2; public String getLoaiPhong() {


public class KhachSan { return loaiPhong;
private int soNgayTro; }
private String loaiPhong; public void setLoaiPhong(String loaiPhong) {
private double giaPhong; this.loaiPhong = loaiPhong;
private Nguoi nguoiTro; }
public KhachSan(int soNgayTro, String loaiPhong, double giaPhong, Nguoi public double getGiaPhong() {
nguoiTro) { return giaPhong;
this.soNgayTro = soNgayTro; }
this.loaiPhong = loaiPhong; public void setGiaPhong(double giaPhong) {
this.giaPhong = giaPhong; this.giaPhong = giaPhong;
this.nguoiTro = nguoiTro; }
} public Nguoi getNguoiTro() {
public int getSoNgayTro() { return nguoiTro;
return soNgayTro; }
} public void setNguoiTro(Nguoi nguoiTro) {
public void setSoNgayTro(int soNgayTro) { this.nguoiTro = nguoiTro;
this.soNgayTro = soNgayTro; }
} }
Class QuanLyKhachSan

package mainbai2_buoi2; }
import java.util.ArrayList; }
import java.util.Scanner; public static void hienThiThongTinKhachSan() {
public class QuanLyKhachSan { for (KhachSan khachSan : danhSachKhachSan) {
private static ArrayList<KhachSan> danhSachKhachSan = new System.out.println("Ho va ten khach: " +
ArrayList<>(); khachSan.getNguoiTro().getHoTen());
public static void nhapThongTinKhachSan() { System.out.println("Ngay sinh cua khach: " +
Scanner scanner = new Scanner(System.in); khachSan.getNguoiTro().getNgaySinh());
System.out.print("Nhap so luong khach tro: "); System.out.println("So cmnd cua khach: " +
int n = scanner.nextInt(); khachSan.getNguoiTro().getSoCMND());
scanner.nextLine(); System.out.println("so ngay tro: " + khachSan.getSoNgayTro());
for (int i = 0; i < n; i++) { System.out.println("Loai phong tro: " + khachSan.getLoaiPhong());
System.out.print("Nhap ho ten khach tro: "); System.out.println("gia phong: " + khachSan.getGiaPhong());
String hoTen = scanner.nextLine(); System.out.println();
System.out.print("Nhap ngay sinh khach tro: "); }
String ngaySinh = scanner.nextLine(); }
System.out.print("Nhap so cmnd khach nguoiTro: "); public static void xoaThongTinKhachSan(String soCMND) {
String soCMND = scanner.nextLine(); for (KhachSan khachSan : danhSachKhachSan) {
System.out.print("Nhap so ngay cua khach tro: "); if (khachSan.getNguoiTro().getSoCMND().equals(soCMND)) {
int soNgayTro = scanner.nextInt(); danhSachKhachSan.remove(khachSan);
scanner.nextLine(); System.out.println("Da xoa thong tin khach tro co cmnd la " +
System.out.print("Chon loai phong : "); soCMND);
String loaiPhong = scanner.nextLine(); return;
System.out.print("gia loai phong: "); }
double giaPhong = scanner.nextDouble(); }
scanner.nextLine(); System.out.println("Khong tim thay khach tro co cmnd la " + soCMND);
Nguoi nguoiTro = new Nguoi(hoTen, ngaySinh, soCMND); }
KhachSan khachSan = new KhachSan(soNgayTro, loaiPhong, giaPhong, public static void quanLyKhachSan() {
nguoiTro); }
danhSachKhachSan.add(khachSan); public static double tinhTienPhaiTra(String soCMNDThanhToan) {
return 0;
}
}
Class Main

package mainbai2_buoi2; String soCMND = scanner.nextLine();


import java.util.Scanner; QuanLyKhachSan.xoaThongTinKhachSan(soCMND);
public class Main { break;
public static void main(String[] args) { case 4:
Scanner scanner = new Scanner(System.in); System.out.print("nhap so cmnd cua khach tro can thanh toan: ");
QuanLyKhachSan.quanLyKhachSan(); String soCMND1 = scanner.nextLine();
while (true) { double tienPhaiTra = QuanLyKhachSan.tinhTienPhaiTra(soCMND1);
System.out.println("1. Nhap thong tin khach tro."); if (tienPhaiTra > 0) {
System.out.println("2. hien thi thong tin khach tro."); System.out.println("so tien phai tra cho khach tro co cmnd " +
System.out.println("3. xoa thong tin khach tro."); soCMND1 + " la " + tienPhaiTra + " đồng.");
System.out.println("4. tinh so tien can phai tra cho khach."); } else {
System.out.println("0. thoat chuong trinh."); System.out.println("khong tim thay khach tro co so cmnd la " +
System.out.print("lua chon cua ban: "); soCMND1);
int luaChon = scanner.nextInt(); }
scanner.nextLine(); break;
switch (luaChon) { case 0:
case 1: System.out.println("Chuong trinh da thoat");
QuanLyKhachSan.nhapThongTinKhachSan(); return;
break; default:
case 2: System.out.println("Lua chon khong hop le");
QuanLyKhachSan.hienThiThongTinKhachSan(); }
break;
case 3: System.out.println();
System.out.print("nhap so cmnd cua khach tro can phai xoa: "); }
}
}

Class Người

import java.util.Scanner; System.out.print("Nhap ngay sinh: ");


public class Nguoi { ngaySinh = scanner.nextLine();
protected String hoTen; System.out.print("Nhap que quan: ");
protected String ngaySinh; queQuan = scanner.nextLine();
protected String queQuan; }
public void nhap() { public void hienThi() {
Scanner scanner = new Scanner(System.in); System.out.println("Ho ten: " + hoTen);
System.out.print("Nhap ho ten: "); System.out.println("Ngay sinh: " + ngaySinh);
hoTen = scanner.nextLine(); System.out.println("Que quan: " + queQuan);
}
}
class hshocsinh

import java.util.Scanner; public void hienThi() {


public class HSHocSinh extends Nguoi { super.hienThi();
private String lop; System.out.println("Lop: " + lop);
private String khoaHoc; System.out.println("Khoa hoc: " + khoaHoc);
private String kyHoc; System.out.println("Ky hoc: " + kyHoc);
public void nhap() { }
super.nhap(); public boolean laHocSinh10A1() {
Scanner scanner = new Scanner(System.in); return lop.equals("10A1");
System.out.print("Nhap lop: "); }
lop = scanner.nextLine(); public boolean sinhNam1985VaQueThaiNguyen() {
System.out.print("Nhap khoa hoc: "); return ngaySinh.contains("1985") && queQuan.equals("Thai Nguyen");
khoaHoc = scanner.nextLine(); }
System.out.print("Nhap ky hoc: "); }
kyHoc = scanner.nextLine();
}
Class Main

import java.util.Scanner; System.out.println("Danh sach hoc sinh sinh nam 1985 va que o Thai
public class Main { Nguyen:");
public static void main(String[] args) { for (int i = 0; i < n; i++) {
Scanner scanner = new Scanner(System.in); if (hocSinhs[i].sinhNam1985VaQueThaiNguyen()) {
System.out.print("Nhap so luong hoc sinh: "); hocSinhs[i].hienThi();
int n = scanner.nextInt(); }
HSHocSinh[] hocSinhs = new HSHocSinh[n]; }
for (int i = 0; i < n; i++) { System.out.println("Danh sach hoc sinh cua lop 10A1:");
hocSinhs[i] = new HSHocSinh(); for (int i = 0; i < n; i++) {
System.out.println("Nhap thong tin hoc sinh thu " + (i + 1) + ":"); if (hocSinhs[i].laHocSinh10A1()) {
hocSinhs[i].nhap(); hocSinhs[i].hienThi();
} }
}
}
}

Class khachhang

public class KhachHang { public String getSoNha() {


private String hoTen; return soNha;
private String soNha; }
private String maCongTo; public void setSoNha(String soNha) {
public KhachHang() {} this.soNha = soNha;
public KhachHang(String hoTen, String soNha, String maCongTo) { }
this.hoTen = hoTen; public String getMaCongTo() {
this.soNha = soNha; return maCongTo;
this.maCongTo = maCongTo; }
} public void setMaCongTo(String maCongTo) {
public String getHoTen() { this.maCongTo = maCongTo;
return hoTen; }
} @Override
public void setHoTen(String hoTen) { public String toString() {
this.hoTen = hoTen; return "KhachHang [hoTen=" + hoTen + ", soNha=" + soNha + ", maCongTo=" +
} maCongTo + "]";
}
}
Class BienLai

public class BienLai { public int getChiSoMoi() {


private KhachHang khachHang; // Thông tin về hộ sử dụng điện return chiSoMoi;
private int chiSoCu; // Chỉ số điện cũ }
private int chiSoMoi; // Chỉ số điện mới public void setChiSoMoi(int chiSoMoi) {
private double soTienPhaiTra; // Số tiền phải trả this.chiSoMoi = chiSoMoi;
public BienLai(KhachHang khachHang, int chiSoCu, int chiSoMoi) { }
this.khachHang = khachHang; public double getSoTienPhaiTra() {
this.chiSoCu = chiSoCu; return soTienPhaiTra;
this.chiSoMoi = chiSoMoi; }
this.soTienPhaiTra = (this.chiSoMoi - this.chiSoCu) * 750; public void setSoTienPhaiTra(double soTienPhaiTra) {
} this.soTienPhaiTra = soTienPhaiTra;
public KhachHang getKhachHang() { }
return khachHang; @Override
} public String toString() {
public void setKhachHang(KhachHang khachHang) { return "Thong tin bien lai : " + "\n" +
this.khachHang = khachHang; khachHang.toString() +
} "Chi so dien cu : " + chiSoCu + "\n" +
public int getChiSoCu() { "Chi so dien moi: " + chiSoMoi + "\n" +
return chiSoCu; "So tien phai tra: " + soTienPhaiTra;
} }
public void setChiSoCu(int chiSoCu) { public String tinhTienDien() {
this.chiSoCu = chiSoCu; return null;
} }
}
Class Main

import java.util.Scanner; }
public class Main { public static KhachHang nhapThongTinKhachHang() {
public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
Scanner scanner = new Scanner(System.in); System.out.println("Nhap thong tin khach hang:");
System.out.print("Nhap so ho gia dinh: "); System.out.print("Ho ten: ");
int n = scanner.nextInt(); String hoTen = scanner.nextLine();
BienLai[] bienLais = new BienLai[n]; System.out.print("So nha: ");
for (int i = 0; i < n; i++) { String soNha = scanner.nextLine();
KhachHang khachHang = nhapThongTinKhachHang(); System.out.print("Ma so cong to: ");
int chiSoCu = nhapChiSoCu(); String maSoCongTo = scanner.nextLine();
int chiSoMoi = nhapChiSoMoi(); return new KhachHang(hoTen, soNha, maSoCongTo);
BienLai bienLai = new BienLai(khachHang, chiSoCu, chiSoMoi); }
bienLais[i] = bienLai; public static int nhapChiSoCu() {
} Scanner scanner = new Scanner(System.in);
// Hiển thị thông tin biên lai của các hộ gia đình System.out.print("Nhap chi so dien cu: ");
for (int i = 0; i < n; i++) { return scanner.nextInt();
System.out.println("Thong tin bien lai cua ho gia dinh " + (i + 1)); }
System.out.println(bienLais[i].toString()); public static int nhapChiSoMoi() {
} Scanner scanner = new Scanner(System.in);
// Tính tiền điện phải trả của từng hộ gia đình System.out.print("Nhap chi so dien moi: ");
for (int i = 0; i < n; i++) { return scanner.nextInt();
System.out.println("Ho gia dinh " + (i + 1) + " can phai tra " + }
bienLais[i].tinhTienDien() + " dong tien dien."); }
}

Bài 1:

import java.util.Scanner; System.out.println("La so nguyen duong");


public class cau1 { } else {
public static void main(String[] args) { System.out.println("la so nguyen am");
Scanner a = new Scanner(System.in); }
System.out.println("Nhap mot so nguyen: "); }
int b = a.nextInt(); }
if (b >= 0) {
Bài 2:

import java.util.Scanner; y = sc.nextFloat();


public class cau2 { z = sc.nextFloat();
public static void main(String[] args) if(x+y>z && y+z>x && z+x>y)
{ System.out.println(" 3 so dung la 3 canh cua 1 tam giac ");
float x, y, z; else
System.out.println(" Nhap 3 so thuc : "); System.out.println(" 3 so khong la 3 canh cua 1 tam giac ");
Scanner sc = new Scanner(System.in); }
x = sc.nextFloat(); }
Bài 3:

import java.util.Scanner; public static boolean isPrime(int b) {


public class cau3 { if (b < 2) {
public static void main(String[] args) { return false;
Scanner a = new Scanner(System.in); }
System.out.print("Nhap vao mot so nguyen n (n < 1000): "); for (int i = 2; i <= Math.sqrt(b); i++) {
int n = a.nextInt(); if (b % i == 0) {
System.out.print("cac so nguyen to trong khoang tu 0 den " + n + " la: "); return false;
for (int i = 2; i <= n; i++) { }
if (isPrime(i)) { }
System.out.print(i + " "); return true;
} }
} }
}
Bài 4:

import java.util.Scanner; int tong = 0;


public class cau4 { for (int i = 0; i <= n; i += 2) {
public static void main(String[] args) { tong += i;
Scanner a = new Scanner(System.in); }
System.out.print("nhap vao mot so nguyen duong n : "); System.out.println("Tong cac so chan tu 0 den " + n + " la: " + tong);
int n = a.nextInt(); }
}

Bài 5:

import java.util.Scanner; for (int i = 1; i <= 20; i++) {


public class cau5 { int nhan = n * i;
public static void main(String[] args) { System.out.println(n + " x " + i + " = " + nhan);
Scanner a = new Scanner(System.in); }
System.out.print("nhap vao mot so nguyen: "); }
int n = a.nextInt(); }
System.out.println("ket qua phep nhan cua " + n + " voi cac so tu 1 den 20
la:");

Bài 6:

import java.util.Scanner; arr[i] = a.nextInt();


public class cau6 { }
public static void main(String[] args) { int t = 0;
Scanner a = new Scanner(System.in); for (int i = 0; i < n; i++) {
System.out.print("nhap vao so phan tu cua mang: "); t += arr[i];
int n = a.nextInt(); }
int[] arr = new int[n]; double tb = (double) t / n;
for (int i = 0; i < n; i++) { System.out.println("gia tri trung binh cua mang la : " + tb);
System.out.print("nhap vao phan tu thu " + (i + 1) + " cua mang: "); }
}
Bài 7:

import java.util.Scanner; System.out.print(" nhap phan tu " + i + ": ");


public class cau7 { nums[i] = a.nextInt();
public static void main(String[] args) }
{ // Tìm phần tử có giá trị lớn nhất
Scanner a = new Scanner(System.in); int max = nums[0];
System.out.print("Nhap vao so nguyen n: "); for (int i = 1; i < n; i++)
int n = a.nextInt(); if (nums[i] > max)
// Khởi tạo n phần tử mảng nums max = nums[i];
int[] nums = new int[n];
// Nhập vào các phần tử của mảng System.out.println("gia tri lon nhat trong mang la: " + max);
System.out.println("nhap cac phan tu:"); }
for (int i = 0; i < n; i++) { }

Bài 8:

import java.util.Scanner; public static void sortASC(int [] arr) {


public class cau8 { int temp = arr[0];
public static Scanner scanner = new Scanner(System.in); for (int i = 0 ; i < arr.length - 1; i++) {
public static void main(String[] args) { for (int j = i + 1; j < arr.length; j++) {
System.out.print("Nhap so phan tu cua mang: "); if (arr[i] > arr[j]) {
int n = scanner.nextInt(); temp = arr[j];
int [] arr = new int [n]; arr[j] = arr[i];
System.out.print("Nhap vao cac phan tu cua mang: \n"); arr[i] = temp;
for (int i = 0; i < n; i++) { }
System.out.printf("a[%d] = ", i); }
arr[i] = scanner.nextInt(); }
} }
sortASC(arr); public static void show(int [] arr) {
System.out.println("Day cac so duoc sap xep tang dan : "); for (int i = 0; i < arr.length; i++) {
show(arr); System.out.print(arr[i] + " ");
} }
}
}

Bai 9:

import java.util.Scanner; arr[i] = temp;


public class cau9 { }
public static Scanner scanner = new Scanner(System.in); }
public static void main(String[] args) { }
System.out.print("Nhap so phan tu cua mang : "); }
int n = scanner.nextInt(); public static int [] insert(int [] arr, int k) {
int [] arr = new int [n]; int arrIndex = arr.length - 1;
System.out.print("Nhap cac phan tu cua mang : \n"); int tempIndex = arr.length;
for (int i = 0; i < n; i++) { int [] tempArr = new int [tempIndex + 1];
System.out.printf("a[%d] = ", i); boolean inserted = false;
arr[i] = scanner.nextInt(); for (int i = tempIndex; i >= 0; i--) {
} if (arrIndex > -1 && arr[arrIndex] > k) {
System.out.print("Nhap phan tu k : "); tempArr[i] = arr[arrIndex--];
int k = scanner.nextInt(); } else {
sortASC(arr); if (!inserted) {
System.out.print("Sap xep mang tang dan : "); tempArr[i] = k;
show(arr); inserted = true;
System.out.printf("\n Chen phan tu %d vao mang .", k); } else {
arr = insert(arr, k); tempArr[i] = arr[arrIndex--];
System.out.print("\nMang sau khi chen : "); }
show(arr); }
} }
public static void sortASC(int [] arr) { return tempArr;
int temp = arr[0]; }
for (int i = 0 ; i < arr.length - 1; i++) { public static void show(int [] arr) {
for (int j = i + 1; j < arr.length; j++) { for (int i = 0; i < arr.length; i++) {
if (arr[i] > arr[j]) { System.out.print(arr[i] + " ");
temp = arr[j]; }
arr[j] = arr[i]; }
}

Bài 10:

import java.util.*; index = i;


public class cau10 { break;
public static void main(String[] args) { } else {
Scanner scanner = new Scanner(System.in); index = n;
System.out.print("Nhap so phan tu mang n : "); }
int n = scanner.nextInt(); }
int[] arr = new int[n]; int[] newArr = new int[n + 1];
System.out.println("Nhap cac phan tu cua mang: \n"); for (int i = 0; i < n + 1; i++) {
for (int i = 0; i < n; i++) { if (i < index) {
arr[i] = scanner.nextInt(); newArr[i] = arr[i];
} } else if (i == index) {
Arrays.sort(arr); newArr[i] = k;
for (int i = 0; i < n / 2; i++) { } else {
int temp = arr[i]; newArr[i] = arr[i - 1];
arr[i] = arr[n - 1 - i]; }
arr[n - 1 - i] = temp; }
} System.out.println("Mang sau khi chen :");
System.out.print("Nhap phan tu k : "); for (int i = 0; i < n + 1; i++) {
int k = scanner.nextInt(); System.out.print(newArr[i] + " ");
int index = 0; }
for (int i = 0; i < n; i++) { }
if (arr[i] < k) { }

Class Người

import java.util.Scanner; }
public class Nguoi { public String getDiachi() {
private String HovaTen; return diachi;
private String diachi; }
private int Sodienthoai; public void setDiachi(String diachi) {
public Nguoi(String hovaTen, String diachi, int sodienthoai) { this.diachi = diachi;
super(); }
HovaTen = hovaTen; public Integer getSodienthoai() {
return Sodienthoai;
this.diachi = diachi; }
Sodienthoai = sodienthoai; public void setSodienthoai(int sodienthoai) {
} Sodienthoai = sodienthoai;
}
public String getHovaTen() { @Override
return HovaTen; public String toString() {
} return super.toString() + "\nHọ và tên là : " + HovaTen +
public void setHovaTen(String hovaTen) { ",\nđịa chỉ là : " + diachi
HovaTen = hovaTen; + ",\nSố Điện Thoại là : " +
Sodienthoai + "]";
}
}

Class Sinh Viên

public class SinhVien extends Nguoi { }


private String MasoSV; public double getDiemTrungBinh() {
private double DiemTrungBinh; return DiemTrungBinh;
public SinhVien(String hovaTen, String diachi, int sodienthoai) { }
super(hovaTen, diachi, sodienthoai); public void setDiemTrungBinh(double diemTrungBinh) {
this.MasoSV = MasoSV; DiemTrungBinh = diemTrungBinh;
this.DiemTrungBinh = DiemTrungBinh; }
} @Override
public String getMasoSV() { public String toString() {
return MasoSV; return super.toString()+"\nMa So Sinh Vien la : " +
} MasoSV + "\nDiem trung binh la : " + DiemTrungBinh;
public void setMasoSV(String masoSV) { }
MasoSV = masoSV; }

Class Nhân Viên

public class NhanVien extends Nguoi { return luong;


private double luong; }
public NhanVien(String hovaTen, String diachi, int sodienthoai) { public void setLuong(double luong) {
super(hovaTen, diachi, sodienthoai); this.luong = luong;
this.luong = luong; }
} @Override
public double getLuong() { public String toString() {
return super.toString()+",luong: "+ luong;
}
}

Class QLSV

import java.util.ArrayList; public void xoaSinhVien() {


import java.util.Scanner; Scanner sc = new Scanner(System.in);
public class QLSV { System.out.println("Nhập mã sinh viên cần xóa: ");
private ArrayList<SinhVien> danhSachSinhVien; String maSV = sc.nextLine();
public QLSV() {
danhSachSinhVien = new ArrayList<>(); boolean found = false;
} for (SinhVien sv : danhSachSinhVien) {
public void themSinhVien() { if (sv.getMasoSV().equals(maSV)) {
Scanner sc = new Scanner(System.in); danhSachSinhVien.remove(sv);
System.out.println("Nhập thông tin sinh viên mới: "); found = true;
System.out.print("Họ và tên: "); System.out.println("Xóa sinh viên thành công!");
String hoTen = sc.nextLine(); break;
System.out.print("Mã sinh viên: "); }
String maSV = sc.nextLine(); }
System.out.print("Địa chỉ: "); if (!found) {
String diaChi = sc.nextLine(); System.out.println("Không tìm thấy sinh viên có mã " + maSV);
System.out.println("Số Điện Thoại"); }
int sodienthoai = sc.nextInt(); }
System.out.print("Điểm trung bình: "); public void hienThiDanhSachSinhVien() {
double diemTB = sc.nextDouble(); if (danhSachSinhVien.isEmpty()) {
System.out.println("Danh sách sinh viên trống!");
SinhVien sv = new SinhVien(hoTen, diaChi, sodienthoai); return;
sv.setMasoSV(maSV); }
sv.setDiemTrungBinh(diemTB); System.out.println("Danh sách sinh viên: ");
for (SinhVien sv : danhSachSinhVien) {
danhSachSinhVien.add(sv); System.out.println(sv);
System.out.println("Thêm sinh viên mới thành công!"); }
} }
}

Class Chạy

import java.time.LocalDate; qlsv.themSinhVien();


import java.util.ArrayList; break;
import java.util.Scanner; case 2:
public class chay { qlsv.xoaSinhVien();
public static void main(String[] args) { break;
QLSV qlsv = new QLSV(); case 3:
Scanner scanner = new Scanner(System.in); qlsv.hienThiDanhSachSinhVien();
int luaChon = 0; break;
case 4:
do { System.out.println("Kết thúc chương trình.");
System.out.println("Chọn chức năng:"); break;
System.out.println("1. Thêm sinh viên mới"); default:
System.out.println("2. Xóa sinh viên"); System.out.println("Lựa chọn không hợp lệ.");
System.out.println("3. Hiển thị danh sách sinh viên"); break;
System.out.println("4. Thoát"); }

luaChon = scanner.nextInt(); } while (luaChon != 4);

switch (luaChon) { scanner.close();


case 1: }
}
Bài tập: Viết chương trình java định nghĩa thông tin của lớp Thời gian bao gồm 3 thông tin giờ, phút, giây; sau đó xây dựng các phương
thức cho lớp thời gian:

a. Nhập thông tin thời gian

b. Xuất thời gian theo định dạng (hh:mm:ss)

c. Kiểm tra thời gian nhập vào có hợp lệ hay không

d. Tìm thời gian trước đó 1 giây so với thời gian nhập

import java.util.Scanner; public void xuatThoiGian() {


public class ThoiGian { System.out.printf("%02d:%02d:%02d", gio, phut, giay);
private int gio; }
private int phut; public void tinhThoiGianTruoc() {
private int giay; giay--;
public ThoiGian() { if (giay < 0) {
gio = 0; giay = 59;
phut = 0; phut--;
giay = 0; if (phut < 0) {
} phut = 59;
public void nhapThoiGian() { gio--;
Scanner input = new Scanner(System.in); if (gio < 0) {
System.out.print("Nhap gio: "); gio = 23;
gio = input.nextInt(); }
System.out.print("Nhap phut: "); }
phut = input.nextInt(); }
System.out.print("Nhap giay: "); }
giay = input.nextInt(); }
}
public boolean kiemTraThoiGianHopLe() {
if (gio < 0 || gio > 23)
return false;
if (phut < 0 || phut > 59)
return false;
if (giay < 0 || giay > 59)
return false;
return true;
}
Câu 1: Ưu điểm của Package trong java
Package trong Java là một cơ chế để quản lý và tổ chức các class, interface và các tài nguyên khác (như hình ảnh, âm thanh, v.v.) thành các
nhóm logic và có thể được sử dụng để đóng gói các thành phần liên quan với nhau. Các ưu điểm của package bao gồm:

- Tổ chức và quản lý mã nguồn: Package giúp tổ chức mã nguồn thành các nhóm chức năng, làm cho việc quản lý và bảo trì mã
nguồn trở nên dễ dàng hơn.
- Tính tái sử dụng cao: Package cho phép chia sẻ code giữa các thành phần khác nhau trong cùng một ứng dụng hoặc giữa các
ứng dụng khác nhau, giúp tăng tính tái sử dụng của mã nguồn.
- Tạo ra các tầng phân cấp: Package cung cấp cho người phát triển khả năng tạo ra các tầng phân cấp của mã nguồn, giúp cho
việc phát triển và bảo trì các hệ thống lớn trở nên dễ dàng hơn.
- Tính bảo mật cao: Package có khả năng che giấu các thành phần của nó, giúp cho các class và interface không thể truy cập vào
các thành phần không được phép.
- Quản lý version: Package giúp quản lý version của các thành phần bên trong nó, cho phép người phát triển dễ dàng theo dõi và
kiểm soát các thay đổi và cập nhật mã nguồn.
- Tăng tính module hóa: Package làm cho mã nguồn trở thành các module độc lập, giúp cho việc phát triển các module riêng lẻ và
kết hợp chúng thành một hệ thống lớn trở nên dễ dàng hơn.
- Phân chia các chức năng: Package giúp phân chia các chức năng riêng biệt của ứng dụng, làm cho việc phát triển và bảo trì ứng
dụng trở nên dễ dàng và hiệu quả hơn.

Câu 2:

a. Tính bao đóng trong Oop là gì

b. Mục đích của tính bao đóng trong OOP ?

c. Trong lập trình hướng đối tượng bằng ngôn ngữ java, tính bao đóng thể hiện bằng cách nào

a. Tính bao đóng (encapsulation) trong OOP là khả năng che giấu thông tin và hành vi của một đối tượng khỏi bên ngoài, thông qua việc
đóng gói các thuộc tính và phương thức của đối tượng lại thành một đơn vị độc lập và đưa ra những phương thức public để cho phép các
đối tượng khác tương tác với nó.

b. Mục đích của tính bao đóng trong OOP là tăng tính bảo mật và bảo trì của chương trình, giúp hạn chế sự can thiệp từ bên ngoài, đồng
thời giúp cho mã nguồn dễ bảo trì hơn, khiến nó dễ dàng được mở rộng và tái sử dụng.

c. Trong lập trình hướng đối tượng bằng ngôn ngữ Java, tính bao đóng thể hiện bằng cách sử dụng các từ khóa "public", "private", và
"protected" để quản lý việc truy cập đến các thuộc tính và phương thức của đối tượng. Các thuộc tính và phương thức được đánh dấu là
private chỉ có thể truy cập và sửa đổi bên trong lớp đó, trong khi các phương thức public được sử dụng để truy cập và thay đổi các giá trị
của thuộc tính từ bên ngoài. Việc sử dụng các từ khóa này giúp tạo ra các "bộ đóng gói" (packages) các thuộc tính và phương thức trong
đối tượng, che giấu các chi tiết triển khai của đối tượng và giúp mã nguồn dễ dàng quản lý hơn.

Câu 3 :

a. Tính trừu tượng trong Oop là gì

b. Mục đích của tính trừu tượng trong OOP ?

c. Trong lập trình hướng đối tượng bằng ngôn ngữ java, tính trừu tượng thể hiện bằng cách nào

a. Tính trừu tượng (abstraction) trong OOP là khả năng tập trung vào các đặc tính quan trọng của một đối tượng mà bỏ qua các chi tiết
không cần thiết, thông qua việc định nghĩa các lớp và phương thức trừu tượng mà không cần biết cụ thể triển khai nó.

b. Mục đích của tính trừu tượng trong OOP là giúp tách biệt giữa khía cạnh trừu tượng và khía cạnh cụ thể của một đối tượng, giúp cho mã
nguồn trở nên dễ đọc, dễ bảo trì và dễ mở rộng hơn. Nó cũng giúp giảm sự phức tạp của hệ thống, tăng tính tái sử dụng và khả năng đa
dạng hóa trong lập trình.

c. Trong lập trình hướng đối tượng bằng ngôn ngữ Java, tính trừu tượng thể hiện bằng cách sử dụng các lớp trừu tượng (abstract class) và
các phương thức trừu tượng (abstract method). Lớp trừu tượng là một lớp mà không thể tạo ra đối tượng từ đó, nhưng nó chứa các
phương thức trừu tượng mà các lớp con phải định nghĩa lại. Các phương thức trừu tượng chỉ có chữ ký, mà không có thân phương thức,
các lớp con phải triển khai lại các phương thức này. Việc sử dụng các lớp và phương thức trừu tượng giúp giảm sự phức tạp của hệ thống,
cho phép tách biệt khía cạnh trừu tượng của đối tượng với khía cạnh cụ thể, giúp cho mã nguồn trở nên dễ đọc, dễ bảo trì và dễ mở rộng
hơn.

KHÁI NIỆM :

Trạng thái:
 Trạng thái của một đối tượng là một trong các điều kiện tại đó mà đối tượng tồn tại
 Trạng thái của 1 đối tượng có thể thay đổi theo thời gian
Hành vi
 Hành vi quyết định đối tượng đó hành động và đáp trả như thế nào đối với bên ngoài
 Hành vi nhìn thấy được của 1 đối tượng được mô hình thành một tập các thông điệp nó có thể đáp trả
Đối tượng
 Đối tượng là một thực thể phần mềm bao bọc các thuộc tính và các phương thức liên quan
- Thuộc tính được xác định bởi giá trị cụ thể gọi là thuộc tính thể hiện
- Một đối tượng cụ thể được gọi là 1 thể hiện
1. Tương tác giữa các đối tượng
 Các đối tượng trong thế giới thực có thể tương tác với nhau
 Trong lập trình:
- Các đối tượng giao tiếp với nhau bằng cách gửi thông điệp
2. Gọi hàm và gửi thông điệp
 Gọi hàm:
- Chỉ ra chính xác đoạn mã nào sẽ được thực hiện
- Chỉ có duy nhất một sự thực thi của một hàm với một tên nào đó
- Không có hai hàm trùng tên
 Gửi thông điệp
- Yêu cầu một dịch vụ từ một đối tượng và đối tượng sẽ quyết định cần phải làm gì
- Các đối tựng khác nhau sẽ có các cách thực thi các thông điệp theo cách khác nhau
3. Thông điệp và phương thức
 Thông điệp
- Được gửi từ đối tượng này đến đối tượng kia, không bao gồm đoạn mã thực thi sẽ được thực thi
 Phương thức
- Thủ tục/hàm trong ngôn ngữ lập trình cấu trúc
- Là sự thực thi dịch vụ được yêu cầu bởi thông điệp
- Là đoạn mã sẽ được thực thi để đáp ứng thông điệp được gửi đến cho đối tượng
1. Trừu tượng hóa
 Là quá trình loại bỏ đi các thông tin cụ thể và giữ lại những thông tin chung
 Tập trung vào các đặc điểm cơ bản của thực thể, các đặc điểm phân biệt nó với các loại thực thể khác
 Phụ thuộc vào góc nhìn
- Quan trọng trong ngữ cảnh này nhưng lại không có ý nghĩa nhiều trong ngữ cảnh khác
2. Đóng gói
 Che giấu, ẩn đi chi tiết thực hiện bên trong
 Cung cấp cho thế giới bên ngoài một giao diện
 Người dùng không phụ thuộc vào việc sửa đổi sự thực thi bên trong
- Cho phép điều khiển
 Việc sử dụng đối tượng được kiểm soát thông qua các method public
- Hỗ trợ sự thay đổi
 Việc sử dụng đối tượng không bị ảnh hưởng nếu dữ liệu nội tại bị thay đổi
3. Module hóa
 chia nhỏ hệ thống phức tạp thành những thành phần nhỏ có thể quản lý được
 cho phép người dùng hiểu được về hệ thống
 chia nhỏ một hệ thống phức tạp thành các mô đun nhỏ hơn
4. phân cấp
 xếp hạng hay xếp thứ tự các mức trừu tượng vào 1 cấu trúc cây
 tổ chức để phân loại. sử dụng phân cấp rất dễ dàng nhận ra sự giống và khác nhau giữa các đối tượng
phân tích thiết kế hướng đối tượng
1. phân tích thiết kế hướng đối tượng
 phương pháp luận trong PT&TK phần mềm thông thường được định nghĩa như là một tập các quá trình và thao tác để tìm và
khám phá cách có thể giải quyết được bài toán phần mềm.
 một trong cá phương pháp hiệu quả nhất để phát triển phần mềm
2. phát triển phần mềm
 6 giai đoạn:
- Gđ0: lập kế hoạch
- Gđ1: xác định mục tiêu – làm gì
- Gđ2: xác định cách làm thế nào
- Gđ3: xây dựng phần lõi
- Gđ4: lặp lại các trường hợp sử dụng
- Gđ5: phát triển
3. Xác định mục tiêu
 Gđ1: xác định mục tiêu – làm gì
 Trong giai đoạn này chúng ta có nhiệm vụ xác định cụ thể các mục tiêu, chức năng và nhiệm vụ mà phần mềm chúng ta cần xây
dựng phải đáp ứng
 Trong phương pháp lập trình cổ điển hướng thủ tục người ta gọi giai đonạ này là giai đoạn tạo ra “phân tích yêu cầu và mô tả
hệ thống”
 Trong PT&TK hướng đối tượng người ta sử dụng các ký pháp và kỹ thuật Use case để mô tả các công việc này
Mảng (array)
 Tập hợp hữu hạn các phần tử cùng kiểu
 Phải được khai báo trước khi sử dụng
 Khai báo:
kieu_dlieu[] ten_mang new kieu_dlieu [KT_MANG];
kieu_dlieu ten_mang[] = new kieu_dlieu [KT_MANG];
Ví dụ:
char c[] = new char[12];
Khởi tạo mảng
• Khai báo, khởi tạo giá trị ban đầu:
• Cú pháp:
kieu_dl[] ten_mang = {ds_gia_tri_cac_ptu};
• Ví dụ:
int[] number {10, 9, 8, 7, 6};
• Nếu không khởi tạo -> nhận giá trị mặc định tùy thuộc vào kiểu dữ liệu.
• Luôn bắt đầu từ phần tử có chỉ số 0
Mảng nhiều chiều
• Bảng với các dòng và cột
• Thường sử dụng mảng hai chiều
• Ví dụ khai báo mảng hai chiều b[2][2]
int b[] []={{1, 2}, {3,4}};
• 1 và 2 được khởi tạo cho b[0][0] và b[0][1]
• 3 và 4 được khởi tạo cho b[1][0] và b[1][1]
• int b[3][4];

Đa hình là gì?

Tính đa hình đề cập đến khả năng tồn tại ở nhiều dạng. Nhiều định nghĩa có thể được đưa ra cho một giao diện duy nhất. Ví
dụ: nếu bạn có một lớp tên là Xe, nó có thể có một phương thức có tên là tốc độ nhưng bạn không thể định nghĩa nó vì các
loại xe khác nhau có tốc độ khác nhau. Phương thức này sẽ được định nghĩa trong các lớp con với các định nghĩa khác nhau
cho các loại xe khác nhau.

Tính đa hình tĩnh là gì?

Tính đa hình tĩnh (liên kết tĩnh) là một loại đa hình xảy ra tại thời điểm biên dịch. Một ví dụ về tính đa hình thời gian biên dịch là
nạp chồng phương thức.

Đa hình động là gì?

Đa hình thời gian chạy hay đa hình động (liên kết động) là một loại đa hình được phân giải trong thời gian chạy. Một ví dụ về
tính đa hình thời gian chạy là ghi đè phương thức.

Nạp chồng phương thức là gì?

Nạp chồng phương thức là một tính năng của OOP giúp có thể đặt cùng một tên cho nhiều phương thức trong một lớp nếu
các đối số được truyền khác nhau.

Ghi đè phương thức là gì?

Ghi đè phương thức là một tính năng của OOP mà lớp con hoặc lớp con có thể xác định lại các phương thức có trong lớp cơ
sở hoặc lớp cha. Ở đây, phương thức được ghi đè có cùng tên cũng như chữ ký có nghĩa là các đối số được truyền và kiểu trả
về.

Nạp chồng toán tử là gì?

Nạp chồng toán tử đề cập đến việc triển khai các toán tử sử dụng kiểu do người dùng xác định dựa trên các đối số được
truyền cùng với nó.

You might also like