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: RÓŻNICA MIĘDZY BAGATYMI A UBÓGIMI DIY || Niesamowite pomysły i genialne triki od 123 GO! GOLD 2024, Listopad
Anonim

Klasy a struktury

Niektóre z głównych koncepcji języków programowania obiektowego (OO) to enkapsulacja, 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 zastosowaniu, ale mają niewiele ograniczeń w porównaniu z klasami. Zarówno klasy, jak i struktura służą do grupowania danych podobnego typu.

Co to są zajęcia?

Klasy przedstawiają abstrakcyjną reprezentację obiektów świata rzeczywistego, podczas gdy relacje pokazują, w jaki sposób każda klasa jest połączona z innymi. Zarówno klasy, jak 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 enkapsulację osiąga się, czyniąc atrybuty prywatnymi, tworząc jednocześnie metody publiczne, których można użyć w celu uzyskania dostępu do tych atrybutów. Obiekt jest instancją klasy. Dziedziczenie pozwala użytkownikowi na rozszerzenie klas (nazywanych subklasami) z innych klas (nazywanych superklasami). Polimorfizm pozwala programiście na podstawienie obiektu klasy w miejsce obiektu jego superklasy. Zazwyczaj rzeczowniki znajdujące się w definicji problemu stają się bezpośrednio klasami w programie. I podobnie, czasowniki stają się metodami. Publiczne, prywatne i chronione to typowe modyfikatory dostępu używane dla klas. Diagram klas pokazuje klasy systemów, relacje między klasami i ich atrybuty.

Czym 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 traktować jako rozszerzenie struktur. Na przykład struktury są takie same jak klasy w C++, ale domyślnie mają publiczne składowe. Użytkownik może zdefiniować strukturę reprezentującą typ, który jest złożony. Podobnie jak klasy, struktury zawierają elementy członkowskie, które mogą należeć do wielu typów. Słowo kluczowe struct służy do definiowania struktury w językach C i C++, podczas gdy słowo kluczowe Structure służy 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ą one subtelne różnice. Zazwyczaj klasa jest rozszerzeniem struktury, a zatem struktury mają pewne względne ograniczenia. Na przykład struktury można traktować tak samo jak klasy w C++, ale składowe 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 tych 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. Słowa kluczowe class i struct służą odpowiednio do definiowania klasy i struktury w C++. W przypadku języków. NET (C, VB. NET itp.) class jest typem referencyjnym, a structure typem wartościowym. I zwykle struktury są używane do mniejszych obiektów, ale klasy są używane do większych obiektów, które są przechowywane w pamięci przez dłuższy czas.

Zalecana: