Lớp so với Kết cấu
Một số khái niệm chính của ngôn ngữ lập trình Hướng đối tượng (OO) là tính đóng gói, tính kế thừa và tính đa hình. Lớp và Cấu trúc là hai trong số các cấu trúc / công cụ OO, giúp lập trình viên đạt được những khái niệm này trong hầu hết các ngôn ngữ lập trình OO (Java không cung cấp cấu trúc). Các lớp là một đại diện trừu tượng của các đối tượng trong thế giới thực. Các cấu trúc rất giống với các lớp có cùng cách sử dụng, nhưng có một số hạn chế so với các lớp. Cả hai lớp và cấu trúc đều được sử dụng để nhóm các loại dữ liệu tương tự lại với nhau.
Lớp học là gì?
Các lớp mô tả sự biểu diễn trừu tượng của các đối tượng trong thế giới thực, trong khi các mối quan hệ mô tả cách mỗi lớp được kết nối với những lớp khác. Cả hai lớp và mối quan hệ đều có các thuộc tính được gọi là thuộc tính. Các phương thức trong các lớp biểu diễn hoặc xác định hành vi của các lớp này. Các phương thức và thuộc tính của các lớp được gọi là các thành viên của lớp. Thông thường, tính đóng gói đạt được bằng cách đặt các thuộc tính ở chế độ riêng tư, trong khi tạo các phương thức công khai có thể được sử dụng để truy cập các thuộc tính đó. Một đối tượng là thể hiện của một lớp. Tính kế thừa cho phép người dùng mở rộng các lớp (được gọi là lớp con) từ các lớp khác (được gọi là siêu lớp). Tính đa hình cho phép người lập trình thay thế một đối tượng của một lớp thay cho một đối tượng của siêu lớp của nó. Thông thường, các danh từ được tìm thấy trong định nghĩa vấn đề trực tiếp trở thành các lớp trong chương trình. Và tương tự, động từ trở thành phương thức. Công khai, riêng tư và bảo vệ là các công cụ sửa đổi truy cập điển hình được sử dụng cho các lớp. Biểu đồ lớp hiển thị các lớp của hệ thống, mối quan hệ giữa các lớp và các thuộc tính của chúng.
Cấu trúc là gì?
Như đã đề cập ở trên, các cấu trúc rất giống với các lớp có công dụng tương tự, nhưng khả năng hạn chế hơn một chút so với các lớp. Trên thực tế, các lớp có thể được coi là một phần mở rộng cho các cấu trúc. Ví dụ, các cấu trúc giống như các lớp trong C ++, nhưng chúng có các thành viên chung theo mặc định. Người dùng có thể xác định một cấu trúc để đại diện cho một kiểu kết hợp. Tương tự như các lớp, các cấu trúc chứa các thành viên có thể thuộc nhiều kiểu. Từ khóa struct được sử dụng để xác định cấu trúc trong C và C ++, trong khi từ khóa Structure được sử dụng cho cấu trúc tương tự trong các ngôn ngữ lập trình. NET.
Sự khác biệt giữa Lớp và Cấu trúc là gì?
Mặc dù cả hai lớp và cấu trúc đều là những cấu trúc tương tự được tìm thấy trong ngôn ngữ lập trình, chúng có những khác biệt nhỏ. Thông thường, lớp là một phần mở rộng của cấu trúc, và do đó cấu trúc có một số hạn chế tương đối. Ví dụ, các cấu trúc có thể được coi là giống như các lớp trong C ++, nhưng các thành viên không được công khai theo mặc định trong các lớp (không giống như trong các cấu trúc). Điều này thực sự có nghĩa là bạn có thể xác định một lớp và một cấu trúc có các đặc điểm giống hệt nhau bằng cách sử dụng các công cụ sửa đổi quyền truy cập thích hợp trong C ++. Tuy nhiên trong C, các cấu trúc không thể chứa bất kỳ hàm hoặc hoạt động quá tải nào. Lớp và cấu trúc từ khóa được sử dụng để định nghĩa một lớp và một cấu trúc trong C ++ tương ứng. Khi nói đến ngôn ngữ. NET (C, VB. NET, v.v.), lớp là một kiểu tham chiếu, trong khi cấu trúc là một kiểu giá trị. Và thông thường, các cấu trúc được sử dụng cho các đối tượng nhỏ hơn, nhưng các lớp được sử dụng cho các đối tượng lớn hơn được lưu giữ trong bộ nhớ trong thời gian dài hơn.