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 konstrukty / nástroje OO, které pomáhají programátorům dosáhnout těchto konceptů ve většině existujících programovacích jazyků OO (Java neposkytuje struktury). Třídy jsou abstraktní reprezentace objektů skutečné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 omezená omezení. Třídy i struktura se používají k seskupení podobných typů dat dohromady.
Co jsou třídy?
Třídy zobrazují abstraktní reprezentaci objektů skutečného světa, zatímco vztahy ukazují, jak je každá třída propojena 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 je zapouzdření dosaženo tím, že atributy jsou soukromé, zatímco vytvoří veřejné metody, které mohou být použity 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 super třídy). Polymorfismus umožňuje programátorovi nahradit objekt třídy místo objektu jeho super třídy. Zpravidla se podstatná jména nalezená v definici problému stanou přímo třídami v programu. A podobně se slovesa stávají metodami. Typické modifikátory přístupu používané pro třídy jsou veřejné, soukromé a chráněné. Diagram třídy ukazuje třídy systémů, vztahy mezi třídami a jejich atributy.
Co jsou struktury?
Jak je uvedeno výše, struktury jsou velmi podobné třídám s podobným použitím, ale jsou mírně omezené schopnosti 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 tak, aby představovala typ, který je složený. Podobně jako třídy, struktury obsahují členy, kteří mohou patřit k mnoha typům. Struktura klíčového slova se používá k definování struktury v C a C ++, zatímco klíčové slovo Struktura se používá pro totéž v programovacích jazycích .NET.
Jaký je rozdíl mezi třídami a strukturami??
I když jsou třídy i struktury podobné konstrukty nalezené v programovacích jazycích, mají jemné rozdíly. Třída je obvykle rozšířením struktury, a proto struktury mají určitá relativní omezení. Například struktury lze považovat za stejné jako třídy v C ++, ale členy nejsou ve třídách standardně veřejné (na rozdíl od struktur). Ve skutečnosti to 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 ani 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 typ odkazu, zatímco struktura je typ hodnoty. Struktury se obvykle 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.