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:

  1. Nhập giá trị cho danh sách học sinh
  2. Sắp xếp học sinh theo chiều tăng dần của điểm trung bình
  3. Tìm đối tượng học sinh có điểm toán cao nhất
  4. Hiển thị tất cả học sinh có tuổi lớn hơn 23
  5. Tìm tất cả sinh viên có họ “Hoàng”
  6. 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

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese