Trong bài viết này, chúng ta sẽ khám phá quy trình xây dựng lớp sinh viên kế thừa từ lớp người, sử dụng ngôn ngữ lập trình Java.
Xem thêm:
- Bài thực hành 11: chương trình quản lý học viện java
- Bài thực hành 13: Xây dựng các lớp và interface quản lý thông tin cán bộ
1. Bài toán
Bài 12: Xây dựng lớp Nguoi với các thuộc tính Hoten, Gioitinh và phương thức: Nhap(), Hien().
– Xây dựng lớp học sinh thừa kế từ lớp Người với thuộc tính: TenLop và phương thức Nhap(), Hien().
– Viết chương trình:
+ Nhập vào N học sinh của các lớp khác nhau.
+ Sắp xếp danh sách học sinh theo tên lớp, hiện danh sách ra màn hình
2. Code
2.1 Lớp Nguoi
package bai12; import java.util.Scanner; public class Nguoi { String hoTen, gioiTinh; public Nguoi(){ } public Nguoi(String hoTen, String gioiTinh){ this.hoTen=hoTen; this.gioiTinh=gioiTinh; } public String getHoTen() { return hoTen; } public void setHoTen(String hoTen) { this.hoTen = hoTen; } public String getGioiTinh() { return gioiTinh; } public void setGioiTinh(String gioiTinh) { this.gioiTinh = gioiTinh; } public void nhap(){ Scanner sc = new Scanner(System.in); System.out.println("Nhap ho va ten: "); hoTen= sc.nextLine(); System.out.println("Nhap gioi tinh: "); gioiTinh = sc.nextLine(); } public void hien(){ System.out.printf("%-25s %-15s",getHoTen(),getGioiTinh()); } }
2.2 Lớp HOCSINH
package bai12; import java.util.Scanner; public class HocSinh extends Nguoi{ String tenLop; public HocSinh(){ } public HocSinh(String hoTen, String gioiTinh,String tenLop){ super(hoTen, gioiTinh); this.tenLop=tenLop; } public String getTenLop() { return tenLop; } public void setTenLop(String tenLop) { this.tenLop = tenLop; } public void nhapHS(){ super.nhap(); Scanner sc = new Scanner(System.in); System.out.println("Nhap ten lop: "); tenLop= sc. nextLine(); } public void xuatHS(){ super.hien(); System.out.printf("%-10s",getTenLop()); } }
2.3 Lớp DanhSachHocSinh
package bai12; import java.util.ArrayList; import java.util.Scanner; public class DanhSachHocSinh { ArrayList<HocSinh> ds = new ArrayList<>(); int n; Scanner sc = new Scanner(System.in); public void nhapDS(){ System.out.println("Nhap so luong hoc sinh: "); n=sc.nextInt(); for(int i=0;i<n;i++){ HocSinh x= new HocSinh(); System.out.println("Nhap hoc sinh thu"+ (i+1)); x.nhapHS(); ds.add(x); } } public void hienDS(){ System.out.println("Danh sach hoc sinh: "); System.out.printf("%-25s%-15s%-10s","Ho ten","Gioi tinh","Lop"); for(int i=0;i<n;i++){ System.out.println(""); ds.get(i).xuatHS(); } System.out.println(""); } public void sapXep(){ HocSinh tg; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(ds.get(i).getTenLop().compareTo(ds.get(j).getTenLop())>0){ tg= ds.get(i); ds.set(i, ds.get(j)); ds.set(j, tg); } } } System.out.println("Danh sach hoc sinh theo ten lop la: "); hienDS(); } }
2.4 Lớp main
package bai12; import java.util.Scanner; public class Bai12 { static void menu(){ System.out.println("1. Nhap danh sach hoc sinh"); System.out.println("2. Xuat danh sach hoc sinh"); System.out.println("3. Sap xep danh sach hoc sinh theo lop"); System.out.println("0. Thoat"); } public static void main(String[] args) { int chon; Scanner sc = new Scanner(System.in); DanhSachHocSinh dshs= new DanhSachHocSinh(); do { menu(); System.out.println("Lua chon: "); chon= sc.nextInt(); switch(chon){ case 1: dshs.nhapDS(); break; case 2: dshs.hienDS(); break; case 3: dshs.sapXep(); break; case 0: System.exit(0); break; default: break; } } while (chon!=0); } }
3. Kết quả
Cảm ơn bạn đã theo dõi bài viết này. Hy vọng rằng nó đã giúp bạn hiểu rõ hơn về cách sử dụng kế thừa trong Java và sẽ hữu ích cho công việc lập trình của bạn trong tương lai.