Unterschied zwischen Klassen und Strukturen

Klassen vs. Strukturen

Einige der Hauptkonzepte von Object Oriented (OO) -Programmiersprachen sind Einkapselung, Vererbung und Polymorphismus. Klasse und Struktur sind zwei der OO-Konstrukte / -Tools, die Programmierern helfen, diese Konzepte in den meisten der vorhandenen OO-Programmiersprachen zu erreichen (Java bietet keine Strukturen). Klassen sind eine abstrakte Darstellung von Objekten der realen Welt. Strukturen sind Klassen mit ähnlicher Verwendung sehr ähnlich, weisen jedoch im Vergleich zu Klassen nur wenige Einschränkungen auf. Beide Klassen und Strukturen werden verwendet, um ähnliche Datentypen zusammenzufassen.

Was sind Klassen??

Klassen zeigen die abstrakte Darstellung von Objekten der realen Welt, während die Beziehungen zeigen, wie jede Klasse mit anderen verbunden ist. Sowohl Klassen als auch Beziehungen verfügen über Eigenschaften, die als Attribute bezeichnet werden. Methoden in den Klassen repräsentieren oder definieren das Verhalten dieser Klassen. Methoden und Attribute von Klassen werden als Mitglieder der Klasse bezeichnet. In der Regel wird die Kapselung dadurch erreicht, dass die Attribute als privat deklariert werden, während öffentliche Methoden erstellt werden, mit denen auf diese Attribute zugegriffen werden kann. Ein Objekt ist die Instanz einer Klasse. Vererbung ermöglicht dem Benutzer das Erweitern von Klassen (als Unterklassen bezeichnet) von anderen Klassen (als Superklassen bezeichnet). Der Polymorphismus ermöglicht es dem Programmierer, ein Objekt einer Klasse anstelle eines Objekts seiner Oberklasse zu ersetzen. Normalerweise werden die in der Problemdefinition gefundenen Nomen direkt zu Klassen im Programm. In ähnlicher Weise werden Verben zu Methoden. Öffentlich, privat und geschützt sind die typischen Zugriffsmodifizierer für Klassen. Ein Klassendiagramm zeigt die Klassen des Systems, die Beziehungen zwischen Klassen und ihre Attribute.

Was sind Strukturen??

Wie oben erwähnt, sind Strukturen Klassen mit ähnlicher Verwendung sehr ähnlich, weisen jedoch etwas eingeschränkte Fähigkeiten auf. Tatsächlich können Klassen als Erweiterung von Strukturen betrachtet werden. Strukturen sind beispielsweise mit Klassen in C ++ identisch, sie haben jedoch standardmäßig öffentliche Mitglieder. Eine Struktur kann vom Benutzer definiert werden, um einen zusammengesetzten Typ darzustellen. Ähnlich wie Klassen enthalten Strukturen Elemente, die zu vielen Typen gehören können. Das Schlüsselwort struct wird verwendet, um eine Struktur in C und C ++ zu definieren, während das Schlüsselwort Structure für dieselbe in .NET-Programmiersprachen verwendet wird.

Was ist der Unterschied zwischen Klassen und Strukturen??

Obwohl sowohl Klassen als auch Strukturen ähnliche Konstrukte sind, die in Programmiersprachen zu finden sind, weisen sie subtile Unterschiede auf. Normalerweise ist die Klasse eine Erweiterung der Struktur, weshalb Strukturen einige Einschränkungen aufweisen. Strukturen können beispielsweise als Klassen in C ++ betrachtet werden, Mitglieder sind jedoch in Klassen standardmäßig nicht öffentlich (im Gegensatz zu Strukturen). Dies bedeutet tatsächlich, dass Sie eine Klasse und eine Struktur mit genau denselben Eigenschaften definieren können, indem Sie die entsprechenden Zugriffsmodifizierer in C ++ verwenden. In C dürfen Strukturen jedoch keine Funktionen oder überladene Operationen enthalten. Schlüsselwörter class und struct werden verwendet, um in C ++ eine Klasse bzw. eine Struktur zu definieren. Wenn es um .NET-Sprachen (C #, VB.NET usw.) geht, ist class ein Referenztyp, während Struktur ein Werttyp ist. Normalerweise werden Strukturen für kleinere Objekte verwendet, Klassen jedoch für größere Objekte, die länger im Speicher verbleiben.