Giờ làm việc

T2 - T7 8h30 - 18h00

Liên hệ

 

Phân biệt Class và Object trong lập trình hướng đối tượng

Phân biệt Class và Object trong lập trình hướng đối tượng

Class và Object là hai thành phần cốt lõi trong lập trình hướng đối tượng (OOP). Class là bản thiết kế, trong khi Object là thể hiện cụ thể của bản thiết kế đó. Bài viết này CodeFresher sẽ giúp bạn hiểu rõ sự khác biệt giữa chúng thông qua ví dụ thực tế.

Khái niệm về Class và Object

Lập trình hướng đối tượng (OOP) là một trong những phương pháp lập trình phổ biến nhất hiện nay, đặc biệt là trong các ngôn ngữ như Java, C++, Python,… Hai khái niệm quan trọng nhất trong OOP là Class (lớp)Object (đối tượng). Nếu bạn mới làm quen với lập trình, rất có thể bạn sẽ nhầm lẫn giữa hai khái niệm này.

Ví dụ phân biệt giữa Class và Object

Class là gì?

Class có thể được xem là một bản thiết kế (blueprint) hoặc khuôn mẫu để tạo ra các đối tượng. Nó định nghĩa các thuộc tính (thuộc tính của đối tượng) và các phương thức (hành vi của đối tượng).

Ví dụ, nếu bạn muốn tạo một ứng dụng quản lý học sinh, bạn có thể định nghĩa một lớp Student như sau:

class Student {
    String name;
    int age;
    String studentID;

    void study() {
        System.out.println(name + " is studying.");
    }

    void introduce() {
        System.out.println("Hello, my name is " + name + ", I am " + age + " years old.");
    }
}

Trong đó:

  • name, age, studentIDthuộc tính của học sinh.
  • study()introduce()phương thức của học sinh.

Object là gì?

Object (đối tượng) là một thể hiện cụ thể của một class. Khi tạo một đối tượng từ class, chúng ta có thể gán giá trị cho các thuộc tính và sử dụng các phương thức của class đó.

Ví dụ, chúng ta có thể tạo ra một số đối tượng từ class Student:

public class Main {
    public static void main(String[] args) {
        Student student1 = new Student();
        student1.name = "Thinh";
        student1.age = 23;
        student1.studentID = "SV001";

        Student student2 = new Student();
        student2.name = "Hung";
        student2.age = 23;
        student2.studentID = "SV002";

        student1.introduce();
        student2.introduce();
    }
}

Kết quả khi chạy chương trình:

Hello, my name is Thinh, I am 23 years old.
Hello, my name is Hung, I am 23 years old.

Trong đó:

  • student1student2đối tượng, mỗi đối tượng có các giá trị riêng biệt nhưng đều tuân theo khuôn mẫu Student.
  • Các phương thức introduce() được gọi thông qua từng đối tượng.

Ví dụ khác về Class và Object

Hãy lấy một ví dụ thực tế hơn: một hệ thống quản lý xe ô tô trong một showroom.

Định nghĩa Class Car

class Car {
    String brand;
    String model;
    int year;

    void startEngine() {
        System.out.println(brand + " " + model + " is starting...");
    }

    void displayInfo() {
        System.out.println("Car: " + brand + " - " + model + " - " + year);
    }
}

Trong lớp Car:

  • brand, model, year là các thuộc tính.
  • startEngine()displayInfo() là các phương thức.

Tạo các Object từ Class Car

public class Showroom {
    public static void main(String[] args) {
        Car car1 = new Car();
        car1.brand = "Toyota";
        car1.model = "Corolla";
        car1.year = 2025;

        Car car2 = new Car();
        car2.brand = "Honda";
        car2.model = "Civic";
        car2.year = 2025;

        car1.displayInfo();
        car1.startEngine();

        car2.displayInfo();
        car2.startEngine();
    }
}

Khi chạy chương trình, kết quả hiển thị:

Car: Toyota - Corolla - 2025
Toyota Corolla is starting...
Car: Honda - Civic - 2025
Honda Civic is starting...

Giải thích

  • car1car2đối tượng, mỗi đối tượng có các giá trị riêng biệt.
  • startEngine()displayInfo() thực hiện các hành động cụ thể trên từng đối tượng.

Tổng kết

Tóm lại, dưới đây là một số điểm chính để phân biệt Class và Object:
Class là bản thiết kế, Object là thể hiện của bản thiết kế đó.
– Một Class có thể tạo ra nhiều Object, nhưng một Object luôn thuộc về một Class.
– Class định nghĩa các thuộc tính và hành vi, Object sử dụng chúng với dữ liệu riêng biệt.

Hiểu được sự khác biệt giữa Class và Object là một trong những bước quan trọng để nắm vững lập trình hướng đối tượng. Hy vọng bài viết này giúp bạn hiểu rõ hơn về cách hoạt động của hai khái niệm quan trọng này!

CodeFresher là trung tâm đào tạo lập trình thực chiến hàng đầu, nơi bạn có thể học tập và rèn luyện cùng các giảng viên giàu kinh nghiệm. Trong đó, Thầy Duy – Thạc sĩ CNTT, tốt nghiệp Đại học Bách Khoa Hà Nội – sẽ trực tiếp hướng dẫn bạn qua các khóa học chất lượng, giúp bạn nắm vững kiến thức nền tảng và kỹ năng thực tế để sẵn sàng làm việc tại các doanh nghiệp công nghệ. Theo dõi thầy qua các kênh:

Và đừng quên đăng ký ngay các khóa học lập trình tại link : https://laptrinh-online.vn/ để học từ giảng viên giàu kinh nghiệm và chất lượng nhé.

Địa chỉ Trung tâm: Tầng 5, toà nhà Diamond Flower – số 1 Hoàng Đạo Thuý, Thanh Xuân, Hà Nội
Hotline: 0813188668 – 0332026803 (zalo / call)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Gọi ngay