logo

AnonyHome

Loading...

Register

Lập Trình - New - Tech Talk - Tin Tức - 2019-03-05

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

ClassObject là hai khái niệm quan trọng nhất của ngôn ngữ lập trình hướng đối tượng (OOP), ví dụ Java. Sự khác biệt chính giữa một Class và một Object trong Java đó là Class nó là một bản thiết kế chi tiết để tạo ra các đối tượng khác nhau cùng loại. Điều này có vẻ đơn giản với nhiều bạn nhưng nếu bạn là người mới bắt đầu hoặc chỉ nghe thuật ngữ “Ngôn ngữ lập trình hướng đối tượng” thì có thể không đơn giản như vậy. Tôi đã gặp nhiều sinh viên, người mới bắt đầu và lập trình viên, những người không biết sự khác biệt giữa lớp và đối tượng và thường sử dụng chúng thay thế cho nhau. Ngoài ra API Java có các lớp như java.lang.Objectjava.lang.Class cũng gây thêm nhiều nhầm lẫn cho những người mới bắt đầu. Cả hai đều là những thứ hoàn toàn khác nhau, lớp và đối tượng trong OOP là các khái niệm và có thể áp dụng cho tất cả các ngôn ngữ lập trình hướng đối tượng khác, ví dụ như C++ hoặc Scala. Mặt khác, java.lang.Class và java.lang.Object là một phần của API Java. Cùng với các khái niệm OOP khác như Tính trừu tượng, Đóng gói, Kế thừa và Đa hình, đây cũng là một trong những điều cơ bản nhất của lập trình hướng đối tượng cần được hiểu rõ ràng trước khi tiến hành lập trình. Nếu không hiểu rõ về Class và Object, bạn sẽ dễ mắc lỗi hơn, bạn không thể hiểu được chương trình đã viết và bạn sẽ rất khó tìm ra lỗi hoặc sửa lỗi hoặc xử lý các ngoại lệ trong code của bạn. Hơn nữa sự khác biệt giữa lớp và đối tượng cũng là một câu hỏi phỏng vấn lập trình rất phổ biến, thường được hỏi ở các cuộc phỏng vấn.

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

1) Lớp là bản thiết kế có nghĩa là bạn có thể tạo các đối tượng khác nhau dựa trên một lớp khác nhau. 
Ví dụ:
Xe là tổng quát hơn so với Mercedes, BMW hay Audi có thể được coi là đối tượng vì thực chất chúng là đề là xe nhưng có kích thước, hình dạng, màu sắc và tính năng khác nhau.
2) Một lớp có thể tương tự như cấu trúc (struct) trong ngôn ngữ lập trình C với sự khác biệt duy nhất là cấu trúc không chứa bất kỳ phương thức hoặc hàm nào, trong khi lớp trong Java chứa cả trạng thái và hành vi, trạng thái được biểu thị bằng trường trong lớp. Còn hành vi được điều khiển bởi các chức năng, còn được gọi là các phương thức trong Java, ví dụ start() sẽ thay đổi trạng thái của xe từ dừng sang bắt đầu hoặc chạy và stop() sẽ làm ngược lại.
3) Đối tượng cũng được gọi là cá thể trong Java và mọi cá thể có các giá trị khác nhau.
ví dụ như trong đoạn code sau:

Ở đây Person là một lớp vì nó định nghĩa thiết kế các đối tượng person, tức là lớp Person sẽ quy định một đối tượng person sẽ trông như thế nào, nó sẽ có thuộc tính gì, v.v… Bằng cách đó, lớp được khai báo bởi từ khóa “class” trong Java và p1, p2, p3 là các đối tượng khác nhau của lớp Person. Một điểm khác biệt giữa Class và Object trong Java là chúng ta có từ khóa class để khai báo lớp nhưng không có từ khóa đối với đối tượng. Các đối tượng được tạo đáng chú ý nhất bằng toán tử new(), gọi constructor của lớp để khởi tạo đối tượng trong Java.
 
Đó là tất cả về sự khác biệt giữa Class và Object trong Java. Như tôi đã nói sự khác biệt chính giữa lớp và đối tượng là Class là một thiết kế của một nhóm các đối tượng mà có các thuộc tính chung trong khi Object là một thực thể là một instance (ví dụ,trường hợp) của một lớp. Lớp sẽ xác định một đối tượng sẽ trông như thế nào và đối tượng thuộc về một lớp cụ thể. Trong ngôn ngữ lập trình hướng đối tượng, bạn có thể tìm thấy các ví dụ thực tế về lớp và đối tượng trong môi trường xung quanh, ví dụ: Nhà có thể là một lớp và nhà của bạn có thể được coi là đối tượng của lớp nhà, vì chúng là nhà nhưng nhà của bạn sẽ khác với các nhà khác.

Nhận bài viết mới qua email

Chuyên mục HOT

Chuyên mục tìm hiểu ioT

Xem thêm

Popular

Newest

Related

AnonyHome ra mắt nền tảng học lập trình trực tuyến

2020-09-04

Chia sẻ tài liệu lập trình Android Full – FPT Software

2020-06-21

Chia sẻ Khóa học xây dựng ứng dụng triệu người xài Android Realtime với Firebase qua 5 dự án

2020-06-27

Khóa học lập trình Android Kotlin toàn tập 2020

2020-07-01

Tài liệu Java Spring MVC – Đại học FPT

2020-06-23

Full source code+Database: Quản lý thư viện+Báo cáo chi tiết

2020-02-26

Chia sẻ tài liệu học Lập trình ARM STM32, STM8, vv

2020-03-05

Chia sẻ bộ video Tự Học Angular Tiếng Việt

2020-06-29

AnonyHome ra mắt nền tảng học lập trình trực tuyến

2020-09-04

Chia sẻ code quản lý khoá học và học viên PHP MYSQL

2021-02-25

Bài giảng Java – Chương 3 phần 1

2021-02-24

Bài giảng Java – Chương 2 phần 2

2021-02-04

Bài giảng Java – Chương 2 phần 1

2021-01-22

Sự khác biệt giữa next() và nextLine() trong Java

2021-01-22

Chương 1: Giới thiệu về Java

2021-01-13

Hướng dẫn cài đặt môi trường Java và Eclipse

2021-01-12

AnonyHome ra mắt nền tảng học lập trình trực tuyến

2020-09-04

Chia sẻ code quản lý khoá học và học viên PHP MYSQL

2021-02-25

Bài giảng Java – Chương 3 phần 1

2021-02-24

Bài giảng Java – Chương 2 phần 2

2021-02-04

Bài giảng Java – Chương 2 phần 1

2021-01-22

Sự khác biệt giữa next() và nextLine() trong Java

2021-01-22

Chương 1: Giới thiệu về Java

2021-01-13

Hướng dẫn cài đặt môi trường Java và Eclipse

2021-01-12