Třídy vs struktury
Některé z hlavních konceptů objektově orientovaných (OO) programovacích jazyků jsou zapouzdření, dědičnost a polymorfismus. Třída a struktura jsou dva z OO konstruktů/nástrojů, které pomáhají programátorům dosáhnout těchto konceptů ve většině stávajících OO programovacích jazyků (Java neposkytuje struktury). Třídy jsou abstraktní reprezentací objektů reálného světa. Struktury jsou velmi podobné třídám s podobným použitím, ale ve srovnání s třídami mají jen málo omezení. Třídy i struktura se používají k seskupování podobného typu dat dohromady.
Co jsou třídy?
Třídy zobrazují abstraktní reprezentaci objektů reálného světa, zatímco vztahy zobrazují, jak jsou jednotlivé třídy propojeny s ostatními. Třídy i vztahy mají vlastnosti nazývané atributy. Metody ve třídách představují nebo definují chování těchto tříd. Metody a atributy tříd se nazývají členy třídy. Typicky se zapouzdření dosáhne tak, že se atributy stanou soukromými, zatímco se vytvoří veřejné metody, které lze použít pro přístup k těmto atributům. Objekt je instancí třídy. Dědičnost umožňuje uživateli rozšířit třídy (nazývané podtřídy) z jiných tříd (nazývaných supertřídy). Polymorfismus umožňuje programátorovi nahradit objekt třídy místo objektu své nadtřídy. Obvykle se podstatná jména nalezená v definici problému přímo stávají třídami v programu. A podobně se ze sloves stávají metody. Veřejné, soukromé a chráněné jsou typické modifikátory přístupu používané pro třídy. Diagram tříd ukazuje třídy systémů, vztahy mezi třídami a jejich atributy.
Co jsou struktury?
Jak bylo uvedeno výše, struktury jsou velmi podobné třídám s podobným využitím, ale mají mírně omezené možnosti než třídy. Ve skutečnosti lze třídy považovat za rozšíření struktur. Například struktury jsou stejné jako třídy v C++, ale ve výchozím nastavení mají veřejné členy. Struktura může být definována uživatelem, aby reprezentovala typ, který je složený. Podobně jako třídy obsahují struktury členy, které mohou patřit k mnoha typům. Klíčové slovo struct se používá k definování struktury v C a C++, zatímco klíčové slovo Structure se používá pro totéž v programovacích jazycích. NET.
Jaký je rozdíl mezi třídami a strukturami?
Přestože jsou jak třídy, tak struktury podobné konstrukce nalezené v programovacích jazycích, mají jemné rozdíly. Třída je obvykle rozšířením struktury, a proto mají struktury určitá relativní omezení. Například struktury lze považovat za stejné jako třídy v C++, ale členové nejsou ve třídách standardně veřejné (na rozdíl od struktur). To ve skutečnosti znamená, že můžete definovat třídu a strukturu s přesně stejnými charakteristikami pomocí příslušných modifikátorů přístupu v C++. V C však struktury nemohou obsahovat žádné funkce nebo přetížené operace. Klíčová slova class a struct se používají k definování třídy a struktury v C++. Pokud jde o jazyky. NET (C, VB. NET atd.), třída je referenční typ, zatímco struktura je typ hodnoty. A obvykle se struktury používají pro menší objekty, ale třídy se používají pro větší objekty, které jsou uchovávány v paměti po delší dobu.