Klassen gegen Strukturen
Einige der Hauptkonzepte von Programmiersprachen objektorientierter (OO) sind Kapselung, Vererbung und Polymorphismus. Klasse und Struktur sind zwei der OO -Konstrukte/Tools, die den Programmierern helfen, diese Konzepte in den meisten der austretenden OO -Programmiersprachen zu erreichen (Java bietet keine Strukturen). Klassen sind eine abstrakte Darstellung realer Weltobjekte. Strukturen sind Klassen mit ähnlicher Verwendung sehr ähnlich, haben jedoch im Vergleich zu Klassen nur wenige Einschränkungen. Beide Klassen und 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 darstellen, 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 gestaltet und öffentliche Methoden erstellt werden, die zum Zugriff auf diese Attribute verwendet werden können. Ein Objekt ist die Instanz einer Klasse. Erbheritz ermöglicht es dem Benutzer, Klassen (als Subklassen bezeichnete Unterrichtsstunden) aus anderen Klassen (als Superklassen bezeichnet) zu 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 ähnlich werden Verben zu Methoden. Öffentlich, privat und geschützt sind die typischen Zugangsmodifikatoren, 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 den Klassen mit ähnlicher Verwendung sehr ähnlich, sind jedoch leicht begrenzte Fähigkeiten als Klassen. Tatsächlich können Klassen als Erweiterung der Strukturen betrachtet werden. Zum Beispiel entsprechen Strukturen wie Klassen in C ++, aber sie haben standardmäßig öffentliche Mitglieder. Eine Struktur kann vom Benutzer definiert werden, um einen zusammengesetzten Typ darzustellen. Ähnlich wie Klassen enthalten Strukturen Mitglieder, die zu vielen Typen gehören können. Die Schlüsselwortstruktur wird verwendet, um eine Struktur in C und C ++ zu definieren, während die Schlüsselwortstruktur für dasselbe in verwendet wird .Netto -Programmiersprachen.
Was ist der Unterschied zwischen Klassen und Strukturen?
Obwohl beide Klassen und Strukturen ähnliche Konstrukte sind, die in Programmiersprachen enthalten sind, haben sie subtile Unterschiede. Typischerweise ist die Klasse eine Erweiterung der Struktur, und daher haben Strukturen einige relative Einschränkungen. Zum Beispiel können Strukturen als dasselbe wie Klassen in C ++ angesehen werden, aber die Mitglieder sind in Klassen nicht öffentlich (im Gegensatz zu Strukturen) nicht öffentlich). Dies bedeutet tatsächlich, dass Sie eine Klasse und eine Struktur mit genau den gleichen Eigenschaften mit den entsprechenden Zugriffsmodifikatoren in C definieren können++. In C können Strukturen jedoch keine Funktionen oder überlasteten Vorgänge enthalten. Schlüsselwörter Klasse und Struktur werden verwendet, um eine Klasse und eine Struktur in C ++ zu definieren. Wenn es darum geht .Netzsprachen (C#, VB.Netz usw.), Klasse ist ein Referenztyp, während die Struktur ein Werttyp ist. Und normalerweise werden Strukturen für kleinere Objekte verwendet, aber Klassen werden für größere Objekte verwendet, die für längere Zeiträume im Speicher gehalten werden.