NỘI DUNG BÀI VIẾT
Chúng ta đã được tiếp cận đến những bài tập Java cơ bản ở những bài viết trước. Tại bài viết này mình sẽ chia sẻ thêm cho các bạn những bài tập OOP Java cơ bản cho những người mới tiếp cận với khái niệm lập trình hướng đối tượng nhé!
>> Xem ngay Tài liệu Java Core giúp bạn “Nâng Cấp” kỹ năng lập trình
Bài tập OOP Java cơ bản có lời giải
Đề bài
Dưới đây mình có một số bài tập về OOP để các bạn có thể luyện tập thêm kiến thức về hướng đối tượng. Các bạn tham khảo nhé.
Bài tập 1:
- Viết một chương trình khai báo một lớp Rectangle có 2 thuộc tính là chiều dài và chiều rộng và có các phương thức sau:
- Hàm tạo không tham số.
- Hàm tạo có 2 tham số.
- Get/set cho các thuộc tính.
- Phương thức tính diện tích hình chữ nhật.
- Phương thức tính chu vi hình chữ nhật.
Bài tập 2:
- Viết chương trình khai báo một lớp Phương trình bậc 2 với các thuộc tính là a, b, c với các phương thức sau:
- Hàm tạo không tham số.
- Hàm tạo có 3 tham số.
- Get/set cho 3 thuộc tính.
- Phương thức tính delta.
- Phương thức tính nghiệm phương trình.
Bài tập 3:
- Viết chương trình khai báo một lớp trừu tượng là Animal có phương thức eat() và makeSound().
- Xây dựng các lớp Cat và Bird kế thừa lớp Animal trong đó:
- Lớp Cat có phương thức run()
- Lớp Bird có phương thức fly()
Lời giải
Sau khi các bạn đã thử sức làm xong các bài tập nhỏ nhỏ ở phía bên trên thì hãy cùng xem lại các bài tập đó với lời giải của mình nhé ^^
Bài tập 1:
- Viết một chương trình khai báo một lớp Rectangle có 2 thuộc tính là chiều dài và chiều rộng và có các phương thức sau:
- Hàm tạo không tham số.
- Hàm tạo có 2 tham số.
- Get/set cho các thuộc tính.
- Phương thức tính diện tích hình chữ nhật.
- Phương thức tính chu vi hình chữ nhật.
- Chương trình:
package com.company; public class Rectangle { private double weight; private double height; public Rectangle() { } public Rectangle(double weight, double height) { this.weight = weight; this.height = height; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getArea() { // Diện tích hình chữ nhật return this.weight * this.height; } public double getPerimeter() { //Chu vi hình chữ nhật return (this.height + this.weight) * 2; } }
Bài tập 2:
- Viết chương trình khai báo một lớp Phương trình bậc 2 với các thuộc tính là a, b, c với các phương thức sau:
- Hàm tạo không tham số.
- Hàm tạo có 3 tham số.
- Get/set cho 3 thuộc tính.
- Phương thức tính delta.
- Phương thức tính nghiệm phương trình.
- Chương trình:
package com.company; public class QuadraticEquation { private double a; private double b; private double c; public QuadraticEquation() { } public QuadraticEquation(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } public double getC() { return c; } public void setC(double c) { this.c = c; } public double getDiscriminant() { //Tính delta return b * b - 4 * a * c; } public double getRoot1() { //tính nghiệm x1 return (-b + Math.sqrt(this.getDiscriminant())) / 2 * a; } public double getRoot2() { //tính nghiệm x2 return (-b - Math.sqrt(this.getDiscriminant())) / 2 * a; } }
Bài tập 3:
- Viết chương trình khai báo một lớp trừu tượng là Animal có phương thức eat() và makeSound().
- Xây dựng các lớp Cat và Bird kế thừa lớp Animal trong đó:
- Lớp Cat có phương thức run()
- Lớp Bird có phương thức fly()
- Chương trình:
package com.company; public abstract class Animal { public abstract void eat(); public abstract void makeSound(); } package com.company; public class Cat extends Animal{ @Override public void eat() { System.out.println("Mèo đang ăn cá"); } @Override public void makeSound() { System.out.println("meow"); } public void run(){ System.out.println("Mèo có thể chạy"); } }
package com.company; public class Bird extends Animal { @Override public void eat() { System.out.println("Con chim đang ăn sâu"); } @Override public void makeSound() { System.out.println("Con chim đang hót"); } public void fly() { System.out.println("Con chim có thể bay"); } }