Phân biệt Class và Object trong Object Oriented Programing

Class và Object là hai khái niệm cơ bản trong lập trình hướng đối tượng (Object Oriented Programing – OOP). Bản thân từ Object Oriented – Định hướng/Tập trung vào đối tượng đã thể hiện tầm quan trọng của Object trong OOP. Vậy, câu hỏi đầu tiên cần phải đặt ra là: Object là cái quái gì mà phải “hướng” vào thế?

Thứ nhất, theo định nghĩa của từ điển thì Object là một vật thể hay đồ vật cụ thể. Chẳng hạn khi tôi bảo “Hãy nghĩ đến một chiếc xe máy”, trong đầu bạn sẽ nghĩ đến một chiếc xe cụ thể mà mình sử dụng hàng ngày. Chiếc xe của bạn khác chiếc xe của tôi, bạn có thể nghĩ đến một chiếc Vespa LX, tôi nghĩ đến chiếc Honda AirBlade của tôi, người khác lại nghĩ đến chiếc xe Nouvo của họ.

Một ngày đẹp giời, tôi được giao nhiệm vụ mô tả chi tiết về chiếc xe của mình, tôi sẽ làm như sau:

Hãng sản xuất: Honda

Dòng xe: Ga

Tên thương hiệu: Air Blade

Màu xe: Đỏ 

Biển kiểm soát: 29 – T8.1234

Trọng tải: 150kg

Vận tốc tối đa 110km/h

Tiêu thụ nhiên liệu: 4l/100km

Trong ví dụ nêu trên, phần chữ màu đen chính là đặc điểm mô ta chi tiết về xe máy nói chung, phần chữ mầu đỏ là đặc điểm cụ thể về chiếc xe của tôi. Tôi gộp chung phần đặc điểm mô tả này lại và đặt tên nó là “Xe máy” để lần sau, phần nội dung cụ thể cũng được tôi gộp lại thành “Xe máy của tôi”. Nếu ai muốn mô tả về chiếc xe của họ, họ chỉ cần lấy những đặc điểm yêu cầu trong “Xe máy” để mô tả về chiếc xe của mình. Như vậy từ một bản mô tả mẫu “Xe máy” tôi có thể tả về hàng trăm chiếc xe máy cụ thể nếu tôi muốn. Do đó, “Xe máy của tôi” sẽ khác với “Xe máy của Tuấn”, “Xe máy của Thủy”, “Xe máy của Cường”

Sự khác biệt giữa Class và Object
Sự khác biệt giữa Class và Object

Trong ví dụ trên:

Xe máy là một Class

“Xe máy của tôi”,“Xe máy của Tuấn”, “Xe máy của Thủy, “Xe máy của Cường” là những Object cụ thể được tạo ra từ Class “Xe máy”.

 Như vậy, có thể thấy ObjectClass là hai khái niệm tồn tại không thể tách rời trong Object Oriented Programing. Object không tự nhiên sinh ra mà phải được tạo ra từ một Class, ngược lại sự tồn tại của Class cũng vô nghĩa nếu như không được cụ thể hóa bằng Object. Điều này có thể ví với khi bạn cần xây nhà mới, bạn sẽ phải thuê kiến trúc sư để vẽ bản thiết kế (Class), sau đó thuê thợ xây để xây ra Ngôi nhà (Object). Nếu không có ngôi nhà (Object) thì Bản thiết kế (Class) chỉ là một mảnh giấy vô giá trị, nếu không có Bản thiết kế (Class), bạn và mấy ông thợ xây cũng chẳng biết làm gì với đống gạch vữa cả.

 Trên đây chỉ là một ví dụ cơ bản theo cách hiểu của tôi về Class và Object. Cách tốt nhất để “ngấm” được OOP là “Learning by Doing”, vì vậy bạn hay thực hành với bất kỳ ngôn ngữ OOP nào mà bạn thấy hữu ích, khái niệm này sẽ dần dần “ngấm” vào đầu bạn trong quá trình thực hành.

%d bloggers like this: