Unterschied zwischen Klassen und Strukturen

Anonim

Klassen und Strukturen

Einige der Hauptkonzepte objektorientierter (OO) Programmiersprachen sind Verkapselung, Vererbung und Polymorphie. Klasse und Struktur sind zwei der OO-Konstrukte / Tools, die Programmierern dabei helfen, diese Konzepte innerhalb der meisten OO-Programmiersprachen zu erreichen (Java stellt keine Strukturen bereit). 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 Arten von Daten zusammen zu gruppieren.

Was sind Klassen?

Klassen stellen die abstrakte Repräsentation von Objekten der realen Welt dar, während die Beziehungen zeigen, wie jede Klasse mit anderen verbunden ist. Beide Klassen und 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 erfolgt die Kapselung, indem die Attribute privat gemacht werden, während öffentliche Methoden erstellt werden, die zum Zugriff auf diese Attribute verwendet werden können. Ein Objekt ist die Instanz einer Klasse. Durch Vererbung kann der Benutzer Klassen (Unterklassen genannt) aus anderen Klassen (Super-Klassen genannt) erweitern. Der Polymorphismus erlaubt es dem Programmierer, ein Objekt einer Klasse anstelle eines Objekts seiner Superklasse zu ersetzen. Typischerweise 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 Zugriffsmodifizierer für Klassen. Ein Klassendiagramm zeigt die Klassen der Systeme, die Beziehungen zwischen Klassen und ihre Attribute.

Was sind Strukturen?

Wie oben erwähnt, sind Strukturen sehr ähnlich zu Klassen mit einer ähnlichen Verwendung, sind aber geringfügig eingeschränkter als Klassen. Tatsächlich können Klassen als Erweiterung von Strukturen betrachtet werden. Zum Beispiel sind Strukturen dieselben wie Klassen in C ++, aber sie haben standardmäßig öffentliche Mitglieder. Eine Struktur kann vom Benutzer definiert werden, um einen Typ darzustellen, der zusammengesetzt ist. Strukturen enthalten ähnlich zu Klassen 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 dasselbe in.NET-Programmiersprachen verwendet wird.

Was ist der Unterschied zwischen Klassen und Strukturen?

Auch wenn Klassen und Strukturen ähnliche Konstrukte in Programmiersprachen sind, haben sie feine Unterschiede. Typischerweise ist die Klasse eine Erweiterung der Struktur, und daher haben Strukturen einige relative Einschränkungen. Zum Beispiel können Strukturen wie Klassen in C ++ betrachtet werden, aber Mitglieder sind standardmäßig in Klassen (im Gegensatz zu Strukturen) nicht öffentlich.Das bedeutet, dass Sie eine Klasse und eine Struktur mit genau denselben Merkmalen definieren können, indem Sie die entsprechenden Zugriffsmodifizierer in C ++ verwenden. In C können Strukturen jedoch keine Funktionen oder überlastete Operationen enthalten. Schlüsselwörter Klasse und Struktur werden verwendet, um eine Klasse bzw. eine Struktur in C ++ zu definieren. Wenn es darum geht. NET-Sprachen (C #, VB.NET usw.), Klasse ist ein Referenztyp, Struktur ist ein Wertetyp. Üblicherweise werden Strukturen für kleinere Objekte verwendet, Klassen werden jedoch für größere Objekte verwendet, die länger im Speicher gehalten werden.