Skip to content
  • Bảng vàng Mankai
  • Tin tức
  • Liên hệ
  • VI
  • JP
Mankai AcademyMankai Academy
  • Giới thiệu
    • Về Mankai
    • Đội ngũ
  • JLPT
  • Kaiwa
  • Sơ cấp
  • Tokutei
  • IT Talk
  • Đào tạo doanh nghiệp
Trang chủ / Kiến thức chuyên môn / Bài Tập OOP Java: Cấp Độ Cơ Bản
  • Dành cho người mới bắt đầu
  • Dành cho người đã có nền tảng
  • Dành cho người muốn đi Nhật
  • Nhận kho tài liệu miễn phí
Test tư duy lập trình miễn phí

Đăng ký nhận tin tức từ Rikkei Academy

    03/07/2023

    Bài Tập OOP Java: Cấp Độ Cơ Bản

    Phí Thanh 04 phút đọc
    Bai Tap Oop Java Rikkei Academy

    Mục lục

    Toggle
    • Bài tập OOP Java có lời giải
      • Bài OOP Java 1
      • Bài tập OOP Java 2
      • Bài 3
      • Bài OOP Java 4
      • Bài 5
      • Bài 6
      • Bài tập OOP Java 7
      • Bài 8
    • Bài tập OOP Java rèn luyện
    • Kết luận

    Lập trình hướng đối tượng (OOP – Object Oriented Programming) là một trong những phương pháp phổ biến nhất giúp giải quyết các bài toán phức tạp một cách hiệu quả và dễ dàng. Hãy cùng Rikkei Academy tìm hiểu và thực hành một số bài tập OOP Java cấp độ cơ bản để nắm vững kiến thức cơ bản về lập trình hướng đối tượng trong Java.

    Bài tập OOP Java có lời giải

    Bài OOP Java 1

    Tạo lớp “Library” với một bộ sưu tập sách và các phương thức để thêm và xóa sách.

    import java.util.ArrayList;

    class Library {

    private ArrayList<Book> bookCollection;

    // Constructor (Hàm tạo) của lớp Library

    public Library() {

    this.bookCollection = new ArrayList<>();

    }

    // Phương thức để thêm sách vào thư viện

    public void addBook(Book book) {

    bookCollection.add(book);

    }

    // Phương thức để xóa sách khỏi thư viện theo ISBN

    public void removeBookByIsbn(String isbn) {

    bookCollection.removeIf(book -> book.getIsbn().equals(isbn));

    }

    // Phương thức in ra danh sách sách trong thư viện

    public void printBookList() {

    System.out.println(“Book list in the library:”);

    for (Book book : bookCollection) {

    System.out.println(book);

    }

    }

    }

    Bài tập OOP Java 2

    Tạo lớp “Person” với thuộc tính tên và tuổi. Tạo hai đối tượng của lớp “Person”, thiết lập thuộc tính bằng constructor và in tên và tuổi của chúng.

    // Khai báo lớp “Person” với thuộc tính tên và tuổi

    public class Person {

    private String name;

    private int age;

    // Tạo constructor để thiết lập giá trị cho các thuộc tính khi tạo đối tượng

    public Person(String name, int age) {

    this.name = name;

    this.age = age;

    }

    // Định nghĩa các phương thức getter để truy xuất giá trị của các thuộc tính

    public String getName() {

    return name;

    }

    public int getAge() {

    return age;

    }

    }

    Để sử dụng lớp “Person” này, ta tạo tệp chứa một lớp chứa hàm main như sau:

    // Lớp Main để chạy chương trình

    public class Main {

    public static void main(String[] args) {

    // Tạo hai đối tượng của lớp “Person” và truyền các giá trị tên và tuổi vào qua constructor

    Person person1 = new Person(“John”, 25);

    Person person2 = new Person(“Jane”, 30);

    // In ra thông tin của hai đối tượng bằng cách sử dụng các phương thức getter để lấy giá trị của các thuộc tính

    System.out.println(“Person 1: ” + person1.getName() + “, ” + person1.getAge() + ” years old”);

    System.out.println(“Person 2: ” + person2.getName() + “, ” + person2.getAge() + ” years old”);

    }

    }

    Bài 3

    Tạo lớp “Dog” với thuộc tính tên và giống. Tạo hai đối tượng của lớp “Dog”, thiết lập thuộc tính của chúng bằng constructor và điều chỉnh thuộc tính bằng các phương thức setter, sau đó in các giá trị đã cập nhật.

    // Khai báo lớp “Dog” với thuộc tính tên và giống

    public class Dog {

    private String name;

    private String breed;

    // Tạo constructor để thiết lập giá trị cho các thuộc tính khi tạo đối tượng

    public Dog(String name, String breed) {

    this.name = name;

    this.breed = breed;

    }

    // Định nghĩa các phương thức setter để thiết lập giá trị của các thuộc tính

    public void setName(String name) {

    this.name = name;

    }

    public void setBreed(String breed) {

    this.breed = breed;

    }

    // Định nghĩa các phương thức getter để truy xuất giá trị của các thuộc tính

    public String getName() {

    return name;

    }

    public String getBreed() {

    return breed;

    }

    }

    Để sử dụng lớp “Dog” này, ta tạo tệp chứa một lớp chứa hàm main như sau:

    // Lớp Main để chạy chương trình

    public class Main {

    public static void main(String[] args) {

    // Tạo hai đối tượng của lớp “Dog” và truyền các giá trị tên và giống vào qua constructor

    Dog dog1 = new Dog(“Max”, “Golden Retriever”);

    Dog dog2 = new Dog(“Buddy”, “Labrador Retriever”);

    // In ra thông tin của hai đối tượng ban đầu

    System.out.println(“Dog 1: ” + dog1.getName() + “, ” + dog1.getBreed());

    System.out.println(“Dog 2: ” + dog2.getName() + “, ” + dog2.getBreed());

    // Điều chỉnh thuộc tính tên của đối tượng bằng phương thức setter

    dog1.setName(“Charlie”);

    dog2.setBreed(“Poodle”);

    // In ra thông tin của hai đối tượng sau khi đã cập nhật

    System.out.println(“Dog 1: ” + dog1.getName() + “, ” + dog1.getBreed());

    System.out.println(“Dog 2: ” + dog2.getName() + “, ” + dog2.getBreed());

    }

    }

    Bài OOP Java 4

    Tạo lớp “Rectangle” với thuộc tính chiều rộng và chiều cao. Tính diện tích và chu vi của hình chữ nhật.

    // Khai báo lớp “Rectangle” với hai thuộc tính chiều rộng và chiều cao

    public class Rectangle {

    private double width;

    private double height;

    // Tạo constructor để thiết lập giá trị cho các thuộc tính khi tạo đối tượng

    public Rectangle(double width, double height) {

    this.width = width;

    this.height = height;

    }

    // Định nghĩa phương thức tính diện tích của hình chữ nhật

    public double getArea() {

    return width * height;

    }

    // Định nghĩa phương thức tính chu vi của hình chữ nhật

    public double getPerimeter() {

    return 2 * (width + height);

    }

    }

    Để sử dụng lớp “Rectangle” này, ta tạo tệp chứa một lớp chứa hàm main như sau:

    // Lớp Main để chạy chương trình

    public class Main {

    public static void main(String[] args) {

    // Tạo một đối tượng của lớp “Rectangle” và truyền các giá trị chiều rộng và chiều cao vào qua constructor

    Rectangle rectangle = new Rectangle(4, 6);

    }

    }

    Bài 5

    Tạo lớp “Circle” với thuộc tính bán kính sao cho có thể truy cập và chỉnh sửa thuộc tính này. Tính diện tích và chu vi của hình tròn.

    // Khai báo lớp “Circle” với thuộc tính bán kính

    public class Circle {

    private double radius;

    // Tạo constructor để thiết lập giá trị cho thuộc tính bán kính khi tạo đối tượng

    public Circle(double radius) {

    this.radius = radius;

    }

    // Định nghĩa phương thức getter để truy xuất giá trị của thuộc tính bán kính

    public double getRadius() {

    return radius;

    }

    // Định nghĩa phương thức setter để chỉnh sửa giá trị của thuộc tính bán kính

    public void setRadius(double radius) {

    this.radius = radius;

    }

    // Định nghĩa phương thức tính diện tích của hình tròn

    public double getArea() {

    return Math.PI * radius * radius;

    }

    // Định nghĩa phương thức tính chu vi của hình tròn

    public double getPerimeter() {

    return 2 * Math.PI * radius;

    }

    }

    Để sử dụng lớp “Circle” này, ta tạo tệp chứa một lớp chứa hàm main như sau:

    // Lớp Main để chạy chương trình

    public class Main {

    public static void main(String[] args) {

    // Tạo một đối tượng của lớp “Circle” và truyền giá trị bán kính vào qua constructor

    Circle circle = new Circle(5);

    // Thay đổi giá trị bán kính của hình tròn

    circle.setRadius(10);

    }

    }

    Bài 6

    Tạo lớp “Book” với các thuộc tính cho tiêu đề, tác giả và ISBN, cùng với các phương thức để thêm và xóa sách khỏi bộ sưu tập.

    // Khai báo lớp “Book”

    public class Book {

    private String title;

    private String author;

    private String isbn;

    // Tạo constructor để thiết lập giá trị cho các thuộc tính khi tạo đối tượng

    public Book(String title, String author, String isbn) {

    this.title = title;

    this.author = author;

    this.isbn = isbn;

    }

    // Định nghĩa phương thức getter để truy xuất giá trị của thuộc tính “title”

    public String getTitle() {

    return title;

    }

    public String getAuthor() {

    return author;

    }

    public String getIsbn() {

    return isbn;

    }

    // Định nghĩa phương thức để thêm sách vào bộ sưu tập

    public void addBookToCollection(List<Book> collection) {

    collection.add(this);

    }

    // Định nghĩa phương thức để xóa sách khỏi bộ sưu tập

    public void removeBookFromCollection(List<Book> collection) {

    collection.remove(this);

    }

    }

    Bài tập OOP Java 7

    Tạo lớp “Employee” với các thuộc tính tên, chức vụ và mức lương, cùng với các phương thức để tính toán mức lương.

    // Khai báo lớp Employee

    public class Employee {

    // Khai báo các thuộc tính của lớp Employee

    private String name; // Tên nhân viên

    private String position; // Chức vụ của nhân viên

    private double salary; // Mức lương của nhân viên

    // Hàm khởi tạo lớp Employee với các tham số đầu vào

    public Employee(String name, String position, double salary) {

    this.name = name;

    this.position = position;

    this.salary = salary;

    }

    // Các phương thức getter và setter cho các thuộc tính của lớp Employee

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public String getPosition() {

    return position;

    }

    public void setPosition(String position) {

    this.position = position;

    }

    public double getSalary() {

    return salary;

    }

    public void setSalary(double salary) {

    this.salary = salary;

    }

    // Phương thức tính mức lương của nhân viên

    public double calculateSalary(int hoursWorked) {

    if (hoursWorked <= 0) {

    return 0;

    }

    return salary * hoursWorked;

    }

    }

    Bài 8

    Bài tập OOP Java này yêu cầu: Tạo lớp “Employee” với các thuộc tính tên, mức lương và ngày thuê, cùng với một phương thức để tính số năm làm việc.

    import java.time.LocalDate;

    import java.time.Period;

    // Khai báo lớp Employee

    public class Employee {

    // Khai báo các thuộc tính của lớp Employee

    private String name; // Tên nhân viên

    private double salary; // Mức lương của nhân viên

    private LocalDate hireDate; // Ngày thuê nhân viên

    // Hàm khởi tạo lớp Employee với các tham số đầu vào

    public Employee(String name, double salary, int year, int month, int day) {

    this.name = name;

    this.salary = salary;

    this.hireDate = LocalDate.of(year, month, day);

    }

    // Phương thức tính số năm làm việc của nhân viên

    public int getYearsOfWorking() {

    LocalDate currentDate = LocalDate.now(); // Lấy ngày hiện tại

    Period period = Period.between(hireDate, currentDate); // Tính khoảng thời gian giữa ngày thuê và ngày hiện tại

    return period.getYears(); // Trả về số năm làm việc

    }

    // Các phương thức getter và setter cho các thuộc tính của lớp Employee

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public double getSalary() {

    return salary;

    }

    public void setSalary(double salary) {

    this.salary = salary;

    }

    public LocalDate getHireDate() {

    return hireDate;

    }

    public void setHireDate(LocalDate hireDate) {

    this.hireDate = hireDate;

    }

    }

    Bài tập OOP Java rèn luyện

    Dưới đây là một số bài tập OOP Java để bạn có thể tự luyện tập kiến thức và kỹ năng lập trình của mình

    Bài 8: Viết chương trình Java để tạo lớp có tên “TrafficLight” với các thuộc tính màu sắc và thời lượng, cùng với các phương thức để thay đổi màu sắc và kiểm tra màu đỏ hoặc xanh lá cây.

    Bài 9: Tạo lớp “MusicLibrary” với một bộ sưu tập bài hát và các phương thức để thêm và xóa bài hát, cũng như phát một bài hát ngẫu nhiên.

    Bài 10: Tạo một lớp với các phương thức để tìm kiếm chuyến bay và khách sạn, đặt và hủy đặt phòng.

    Bài 11: Tạo lớp “Bank” với một bộ sưu tập tài khoản và các phương thức để thêm và xóa tài khoản, nạp tiền và rút tiền. Định nghĩa một lớp “Account” để duy trì thông tin chi tiết tài khoản của một khách hàng cụ thể.

    Bài 12: Tạo lớp “Student” với các thuộc tính tên, điểm số và các khóa học, cùng với các phương thức để thêm và xóa khóa học.

    Bài 13: Tạo lớp “Airplane” với các thuộc tính số hiệu chuyến bay, điểm đến và thời gian khởi hành, cùng với các phương thức để kiểm tra tình trạng chuyến bay và chậm trễ.

    Bài 14: Tạo lớp “Inventory” với một bộ sưu tập sản phẩm và các phương thức để thêm và xóa sản phẩm, cũng như kiểm tra hàng tồn kho thấp.

    Bài 15: Tạo lớp “School” với các thuộc tính cho học sinh, giáo viên và lớp học, cùng với các phương thức để thêm và xóa học sinh, giáo viên và tạo lớp học.

    Bài 16: Tạo lớp “Shape” với các phương thức trừu tượng để tính diện tích và chu vi, và các lớp con cho “Rectangle”, “Circle” và “Triangle”.

    Bài 17: Tạo lớp “Movie” với các thuộc tính cho tiêu đề, đạo diễn, diễn viên và đánh giá, cùng với các phương thức để thêm và truy xuất đánh giá.

    Bài 18: Tạo lớp “Restaurant” với các thuộc tính cho các món ăn, giá cả và đánh giá, cùng với các phương thức để thêm và xóa các món ăn, và tính đánh giá trung bình.

    Kết luận

    Sau khi thực hành các bài tập OOP Java cấp độ cơ bản trong bài viết này, hy vọng bạn đã nắm vững hơn về kiến thức lập trình hướng đối tượng trong Java. Hãy tiếp tục tìm hiểu và thực hành nhiều bài tập khác nâng cao hơn để nâng cao kỹ năng lập trình hướng đối tượng của bạn nhé!

    >> Tham khảo khóa học lập trình Java tại Rikkei Academy tại đây!

    Bài viết cùng chủ đề

    • Top 08 ngôn ngữ lập trình nên học trong năm 2023 16/05/202204 phút đọc Top 08 ngôn ngữ lập trình nên học trong năm 2023
    • Luong Lap Trinh Vien Nam 2022 04/01/202304 phút đọc Mức Lương Lập Trình Viên Trong Năm 2022 Theo Vị Trí Và Cấp Bậc Bạn Nên Biết
    • Java khác gì JavaScript 19/05/202304 phút đọc Java và JavaScript: Những điểm khác biệt cơ bản
    • Constructor Trong Java Rikkei Academy 16/06/202304 phút đọc Constructor Trong Java: Tìm Hiểu Tất Tần Tật Về Hàm Khởi Tạo
    • Mang Trong Java Rikkei Academy 15/06/202304 phút đọc Mảng Trong Java: Tất Cả Những Điều Bạn Cần Biết Về Array
    • Html Css Javascript Rikkei Academy 31/05/202304 phút đọc 5 Phút Tìm Hiểu HTML, CSS, Javascript Là Gì?

    Khởi động hành trình của bạn

    Hãy bước vào hành trình mới để khám phá tiềm năng và chinh phục những mục tiêu của bạn ngay hôm nay.

    Liên hệ Nhận tư vấn

    HỌC VIỆN ĐÀO TẠO VÀ PHÁT TRIỂN TIẾNG NHẬT THỰC CHIẾN

    HỌC VIỆN ĐÀO TẠO VÀ PHÁT TRIỂN TIẾNG NHẬT THỰC CHIẾN

    THÔNG TIN LIÊN HỆ

    Địa chỉ: Tòa nhà Sông Đà, Đường Phạm Hùng, Mỹ Đình, Nam Từ Liêm, Hà Nội

    Hotline: 0835 662 538

    Email: support@mankai.edu.vn

    LIÊN KẾT NHANH

    Giới thiệu
    JLPT
    Kaiwa
    Sơ cấp
    IT Talk
    Tokutei
    Đào tạo Doanh ngiệp
    Bảng vàng Mankai
    Tin tức
    Liên hệ

    THEO DÕI CHÚNG TÔI TẠI

    Copyright 2024 © Mankai Academy All rights reserved.
    • Về chúng tôi
    • Khác
    • Bảng vàng Mankai
    • Tin tức
    • Liên hệ
    • Giới thiệu
      • Về Mankai
      • Đội ngũ
    • JLPT
    • Kaiwa
    • Sơ cấp
    • Tokutei
    • IT Talk
    • Đào tạo doanh nghiệp