Sự khác biệt giữa các lớp và các cấu trúc

Anonim

Các lớp và cấu trúc

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à đóng gói, kế thừa và đ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 cho các lập trình viên đạt được các khái niệm này trong hầu hết các ngôn ngữ lập trình OO đang rời (Java không cung cấp cấu trúc). Các lớp học là một biểu diễn trừu tượng các vật thể thế giới thực. Các cấu trúc rất giống với các lớp có sử dụng tương tự, nhưng có ít hạn chế so với lớp học. Cả hai lớp và cấu trúc được sử dụng để nhóm các loại dữ liệu tương tự nhau.

Các lớp học là gì?

Các lớp học miêu tả các biểu diễn trừu tượng các vật thể thế giới, trong khi các mối quan hệ mô tả cách thức mỗi lớp học được kết nối với những người khác. Cả hai lớp và các mối quan hệ đều 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 pháp 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, đóng gói đạt được bằng cách làm cho các thuộc tính riêng tư, trong khi tạo ra các phương thức công cộng 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. Thừa kế cho phép người dùng mở rộng các lớp (gọi là các lớp phụ) từ các lớp khác (gọi là lớp siêu). Đa hình cho phép lập trình viên thay thế một đối tượng của một lớp thay cho một đối tượng của lớp siêu của nó. Thông thường, các danh từ 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 pháp. Công cộng, riêng tư và được bảo vệ là các sửa đổi truy cập điển hình được sử dụng cho các lớp. Một sơ đồ lớp cho thấy các lớp của hệ thống, các 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 với cách sử dụng tương tự, nhưng hơi hạn chế hơn các lớp. Trên thực tế, các lớp học có thể được xem như 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 mặc định chúng có các thành viên public. Một cấu trúc có thể được xác định bởi người sử dụng để đại diện cho một loại được composite. Tương tự như lớp, cấu trúc chứa các thành viên có thể thuộc nhiều loại. Cấu trúc từ khóa được sử dụng để xác định cấu trúc trong C và C ++, trong khi Cấu trúc từ khoá được sử dụng cho cùng một ngôn ngữ lập trình NET.

Sự khác nhau giữa Lớp và Kết cấu là gì?

Mặc dù, cả lớp và cấu trúc là các cấu trúc tương tự được tìm thấy trong các ngôn ngữ lập trình, chúng có sự khác biệt tinh tế. 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 mặc định trong các lớp học (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ể định nghĩa một lớp và một cấu trúc với các đặc tính chính xác giống nhau bằng cách sử dụng các bổ trợ truy cập thích hợp trong C ++. Tuy nhiên trong C, cấu trúc không thể chứa bất kỳ chức năng hoặc quá tải hoạt động. Từ khoá class và struct được sử dụng để xác định một lớp và một cấu trúc trong C ++. Khi nó đến. Ngôn ngữ NET (C #, VB.NET, vv), class là một loại tham chiếu, trong khi cấu trúc là một kiểu giá trị. 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 học đượ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.