Różnica Między Klasami A Strukturami

Różnica Między Klasami A Strukturami
Różnica Między Klasami A Strukturami

Wideo: Różnica Między Klasami A Strukturami

Wideo: Różnica Między Klasami A Strukturami
Wideo: Obiektowy C+ odc. 2: Struktura projektu obiektowego 2024, Listopad
Anonim

Klasy a struktury

Niektóre z głównych koncepcji języków programowania zorientowanych obiektowo (OO) to hermetyzacja, dziedziczenie i polimorfizm. Klasa i Struktura to dwie konstrukcje / narzędzia obiektowe, które pomagają programistom osiągnąć te koncepcje w większości istniejących języków programowania obiektowego (Java nie zapewnia struktur). Klasy są abstrakcyjną reprezentacją obiektów świata rzeczywistego. Struktury są bardzo podobne do klas o podobnym przeznaczeniu, ale mają kilka ograniczeń w porównaniu z klasami. Obie klasy i struktura są używane do grupowania razem podobnych typów danych.

Co to są klasy?

Klasy przedstawiają abstrakcyjną reprezentację obiektów świata rzeczywistego, a relacje przedstawiają sposób, w jaki każda klasa jest połączona z innymi. Obie klasy i relacje mają właściwości zwane atrybutami. Metody w klasach reprezentują lub definiują zachowanie tych klas. Metody i atrybuty klas nazywane są członkami klasy. Zazwyczaj hermetyzację osiąga się, ustawiając atrybuty jako prywatne, podczas tworzenia publicznych metod, które mogą być używane do uzyskiwania dostępu do tych atrybutów. Obiekt jest instancją klasy. Dziedziczenie umożliwia użytkownikowi rozszerzenie klas (zwanych podklasami) z innych klas (zwanych superklasami). Polimorfizm umożliwia programiście podstawienie obiektu klasy w miejsce obiektu jej superklasy. Zazwyczaj rzeczowniki występujące w definicji problemu stają się bezpośrednio klasami w programie. I podobnieczasowniki stają się metodami. Publiczne, prywatne i chronione to typowe modyfikatory dostępu używane dla klas. Diagram klas przedstawia klasy systemów, relacje między klasami i ich atrybuty.

Co to są struktury?

Jak wspomniano powyżej, struktury są bardzo podobne do klas o podobnym zastosowaniu, ale mają nieco ograniczone możliwości niż klasy. W rzeczywistości klasy można uznać za rozszerzenie struktur. Na przykład struktury są takie same jak klasy w C ++, ale domyślnie mają publiczne elementy członkowskie. Struktura może być zdefiniowana przez użytkownika w celu reprezentowania typu złożonego. Podobnie jak klasy, struktury zawierają elementy członkowskie, które mogą należeć do wielu typów. Słowo kluczowe struct jest używane do definiowania struktury w C i C ++, podczas gdy słowo kluczowe Structure jest używane do tego samego w językach programowania. NET.

Jaka jest różnica między klasami a strukturami?

Mimo że zarówno klasy, jak i struktury są podobnymi konstrukcjami występującymi w językach programowania, mają subtelne różnice. Zazwyczaj klasa jest rozszerzeniem struktury, dlatego struktury mają pewne względne ograniczenia. Na przykład struktury można uznać za takie same, jak klasy w C ++, ale elementy członkowskie nie są domyślnie publiczne w klasach (w przeciwieństwie do struktur). W rzeczywistości oznacza to, że możesz zdefiniować klasę i strukturę o dokładnie takich samych cechach, używając odpowiednich modyfikatorów dostępu w C ++. Jednak w C struktury nie mogą zawierać żadnych funkcji ani przeciążonych operacji. Klasa i struktura słów kluczowych służą do definiowania odpowiednio klasy i struktury w języku C ++. Jeśli chodzi o języki. NET (C #, VB. NET itp.), Klasa jest typem referencyjnym, a struktura jest typem wartości. I zwyklestruktury są używane dla mniejszych obiektów, ale klasy są używane dla większych obiektów, które są przechowywane w pamięci przez dłuższy czas.

Zalecane: