Klassen gegen Strukturen
Einige der Hauptkonzepte objektorientierter Programmiersprachen (OO) sind Kapselung, Vererbung und Polymorphismus. Klasse und Struktur sind zwei der OO-Konstrukte / -Tools, mit denen Programmierer diese Konzepte in den meisten der vorhandenen OO-Programmiersprachen erreichen können (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. Sowohl Klassen als auch Struktur werden verwendet, um ähnliche Datentypen zusammen zu gruppieren.
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 haben 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 erreicht, indem die Attribute privat gemacht werden, während öffentliche Methoden erstellt werden, mit denen auf diese Attribute zugegriffen werden kann. Ein Objekt ist die Instanz einer Klasse. Durch Vererbung kann der Benutzer Klassen (als Unterklassen bezeichnet) von anderen Klassen (als Superklassen bezeichnet) erweitern. Durch Polymorphismus kann der Programmierer ein Objekt einer Klasse anstelle eines Objekts seiner Superklasse ersetzen. In der Regel werden die in der Problemdefinition gefundenen Substantive direkt zu Klassen im Programm. Und ähnlichVerben werden zu Methoden. Öffentlich, privat und geschützt sind die typischen Zugriffsmodifikatoren, die für Klassen verwendet werden. Ein Klassendiagramm zeigt die Klassen der Systeme, die Beziehungen zwischen Klassen und ihre Attribute.
Was sind Strukturen?
Wie oben erwähnt, sind Strukturen Klassen mit einer ähnlichen Verwendung sehr ähnlich, haben jedoch geringfügig eingeschränkte Fähigkeiten als Klassen. In der Tat können Klassen als Erweiterung von Strukturen betrachtet werden. Beispielsweise sind Strukturen dieselben wie Klassen in C ++, sie haben jedoch standardmäßig öffentliche Mitglieder. Der Benutzer kann eine Struktur definieren, 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 in den. NET-Programmiersprachen für dasselbe 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. In der Regel ist die Klasse eine Erweiterung der Struktur, und daher weisen Strukturen einige relative Einschränkungen auf. Beispielsweise können Strukturen in C ++ als Klassen 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 Merkmalen mithilfe der entsprechenden Zugriffsmodifikatoren in C ++ definieren können. In C können Strukturen jedoch keine Funktionen oder überladenen Operationen enthalten. Die Schlüsselwörter class und struct werden verwendet, um eine Klasse bzw. eine Struktur in C ++ zu definieren. Wenn es um. NET-Sprachen (C #, VB. NET usw.) geht, ist Klasse ein Referenztyp, während Struktur ein Werttyp ist. Und normalerweiseStrukturen werden für kleinere Objekte verwendet, Klassen werden jedoch für größere Objekte verwendet, die für längere Zeiträume im Speicher bleiben.