Lớp Student kế thừa lớp Person trong Java
Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Java tạo lớp Person gồm các thuộc tính id, name, age, address và các phương thức được mô tả trong bảng sau:
Phương thức | Mô tả |
---|---|
Person() | Hàm khởi tạo không đối số |
Person(name: String, age: int, address: String) | Hàm khởi tạo có đối số |
getName(): String | Trả về giá trị thuộc tính name |
setName(name: String): void | Thiết lập giá trị cho thuộc tính name |
getAge(): int | Trả về giá trị cho thuộc tính age |
setAge(age: int): void | Thiết lập giá trị cho thuộc tính age |
getId(): int | Trả về giá trị cho thuộc tính id |
setId(id: int): void | Thiết lập giá trị cho thuộc tính id |
display(): void | Hiển thị thông tin các thuộc tính |
Tạo lớp Person kế thừa từ lớp Person, có thêm các thuộc tính math, physics, chemistry, average và các phương thức như trong bảng sau:
Phương thức | Mô tả |
---|---|
Student() | Hàm khởi tạo không đối số |
Student(id: int, name: String, age: int, math: double, physics: double, chemistry: double) | Hàm khởi tạo có đối số |
getAverage(): double | Trả về điểm trung bình |
getMath(): double | Trả về giá trị thuộc tính math |
display(): void | Hiển thị thông tin các thuộc tính |
Viết lớp chứa hàm main cho phép tạo danh sách học sinh gồm N (nhập vào từ bàn phím) đối tượng Student và thực hiện các công việc sau:
- Nhập giá trị cho danh sách học sinh
- Sắp xếp học sinh theo chiều tăng dần của điểm trung bình
- Tìm đối tượng học sinh có điểm toán cao nhất
- Hiển thị tất cả học sinh có tuổi lớn hơn 23
- Tìm tất cả sinh viên có họ “Hoàng”
- Hiển thị danh sách sinh viên có địa chỉ ở “Hà Nội”
Yêu cầu kiến thức:
- Xác định, chuyển từ đối tượng thực tế sang đối tượng chương trình
- Xác định các thành phần của lớp, đối tượng như thuộc tính và phương thức
- Xác định kiểu dữ liệu của các thuộc tính và phương thức
Cấu trúc thư mục:
src
|——BuildClass
|——Person.java
|——Student.java
|——SortByAvera.java
|——ManagementStudent.java
|——UseClass
|——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File Person.java:
package BuildClass;
import java.util.Scanner;
public class Person {
// Thuoc tinh
protected int id;
protected String name;
protected int age;
protected String address;
// Phuong thuc
// Ham khoi tao khong doi so
public Person() {
}
// Ham khoi tao co doi so
public Person(int id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
// Cac ham getter va setter cho cac thuoc tinh
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
// Ham hien thi thong tin
public void display() {
System.out.println("\tId: " + id);
System.out.println("\tHo ten: " + name);
System.out.println("\tTuoi: " + age);
System.out.println("\tDia chi: " + address);
}
// Ham nhap thong tin
public void enter(Scanner sc) {
System.out.print("\tNhap id: ");
id = sc.nextInt();
System.out.print("\tNhap ho ten: ");
sc.nextLine();
name = sc.nextLine();
System.out.print("\tNhap tuoi: ");
age = sc.nextInt();
System.out.print("\tNhap dia chi: ");
sc.nextLine();
address = sc.nextLine();
}
}
File Student.java:
package BuildClass;
import java.util.Scanner;
public class Student extends Person {
// Thuoc tinh
private double math, physics, chemistry, average;
// Phuong thuc
// Ham khoi tao khong doi so
public Student() {
}
// Ham khoi tao co doi so
public Student(int id, String name, int age, double math, double physics, double chemistry) {
this.id = id;
this.name = name;
this.age = age;
this.math = math;
this.physics = physics;
this.chemistry = chemistry;
average = (math + physics + chemistry) / 3;
}
// getter cho average
public double getAverage() {
return average;
}
// getter cho math
public double getMath() {
return math;
}
// Ham hien thi
public void display() {
super.display();
System.out.println("\tDiem toan: " + math);
System.out.println("\tDiem vat ly: " + physics);
System.out.println("\tDiem hoa hoc: " + chemistry);
System.out.println("\tDiem trung binh: " + average);
}
// Ham nhap thong tin
public void enter(Scanner sc) {
super.enter(sc);
System.out.print("\tNhap diem toan: ");
math = sc.nextDouble();
System.out.print("\tNhap diem ly: ");
physics = sc.nextDouble();
System.out.print("\tNhap diem hoa: ");
chemistry = sc.nextDouble();
average = (math + physics + chemistry) / 3;
}
}
File SortByAvera.java:
package BuildClass;
import java.util.Comparator;
public class SortByAvera implements Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
return (int) (s1.getAverage() - s2.getAverage());
}
}
File ManagementStudent.java:
package BuildClass;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class ManagementStudent {
// Thuoc tinh
private ArrayList<Student> ds;
// Phuong thuc
// Ham khoi tao
public ManagementStudent() {
ds = new ArrayList<Student>(10);
}
// Ham them student vao danh sach
public void addStudent(Student student) {
ds.add(student);
}
// Ham nhap danh sach
public void enterList(Scanner sc) {
Student student;
System.out.print("Nhap vao so luong hoc sinh: ");
int n = sc.nextInt();
System.out.println("Nhap vao danh sach hoc sinh:");
for (int i = 0; i < n; i++) {
System.out.println("Hoc sinh thu " + (i + 1) + " la:");
student = new Student();
student.enter(sc);
// Them hoc sinh vao danh sach
addStudent(student);
}
}
// Hien thi danh sach hoc sinh
public void displayList() {
int i = 1;
for (Student student :
ds) {
System.out.println("Hoc sinh thu " + (i) + " la:");
student.display();
i++;
}
}
// Ham sap xep tang dan diem trung binh
public void sortAverageAsc() {
Collections.sort(ds, new SortByAvera());
}
// Ham tim hoc sinh co diem toan cao nhat
public void findStuMathMax() {
int n = ds.size();
double max = ds.get(0).getMath();
for (int i = 1; i < n; i++) {
if (max < ds.get(i).getMath()) {
max = ds.get(i).getMath();
}
}
for (Student student :
ds) {
if (max == student.getMath()) {
student.display();
System.out.println();
}
}
}
// Ham hien thi danh sach hoc sinh co tuoi > 23
public void displayStuAge23() {
for (Student student :
ds) {
if (23 >= student.getAge()) {
student.display();
System.out.println();
}
}
}
// Ham hien thi danh sach hoc sinh co ho la Hoang
public void displayStuFNHoang() {
for (Student student :
ds) {
if (student.getName().startsWith("Hoàng")) {
student.display();
System.out.println();
}
}
}
// Ham hien thi danh sach hoc sinh co dia chi o Ha Noi
public void displayStuAddHaNoi() {
for (Student student :
ds) {
if (student.getAddress().startsWith("Hà Nội")) {
student.display();
System.out.println();
}
}
}
}
File MainClass.java:
package UseClass;
import BuildClass.ManagementStudent;
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Khai bao doi tuong
ManagementStudent qlhs = new ManagementStudent();
// Nhap
qlhs.enterList(sc);
// Hien thi
System.out.println("Danh sach hoc sinh vua nhap la:");
qlhs.displayList();
System.out.println("Hoc sinh co diem toan cao nhat la:");
qlhs.findStuMathMax();
System.out.println("Hoc sinh co ho bat dau la Hoang la:");
qlhs.displayStuFNHoang();
sc.close();
}
}
Kết luận:
- Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây