Unterschied zwischen Klasse und Struktur
- 696
- 199
- Prof. Dr. Dylan Hentschel
Bevor wir den Unterschied zwischen Klasse und Struktur verstehen, sollten wir einige mit ihnen verbundene grundlegende Konzepte kennenlernen. Ohne ein Verständnis von Konzepten ist es schwierig, die Unterschiede zwischen den beiden zu verstehen.
Was ist Klasse und Objekt:
Dies sind die beiden wichtigen Konzepte, die sich auf die objektorientierte Programmierung beziehen, und sie bilden die Grundlage für die Rahmung der Funktionen und Daten, die an andere Funktionen übergehen. Für ein besseres Verständnis können wir es mit einem realen Beispiel korrelieren. Eine Klasse kann als Geschäft betrachtet werden, und ein Objekt kann eine der einzelnen, spezifischen Geschäfte wie Lebensmittel, Schreibwaren, Obst usw. sein. Alle Objekte teilen die gemeinsamen Eigenschaften der Hauptklasse -den Laden -und im Gegenzug können die Objekte ihre eigenen exklusiven Eigenschaften wie ein spezifisches Design, Beleuchtung usw. haben. Durch die Objekte können wir die Klasse tatsächlich verwenden. Sie bilden die Fälle einer Klasse.
Syntax einer Klasse
Klassen Store
öffentliche String -Dinge;
öffentlicher Stringdesign;
Syntax eines Objekts
Store Grocery = New Store ();
Stapler stellty = new store ();
Was ist eine Struktur?
Eine Struktur enthält nur die Daten, und daher ist sie hilfreich, um die individuellen Datenanforderungen über die Strukturobjekte zu formulieren. Im Gegensatz zu einer Klasse fehlen die Funktionen. Hier ist seine Syntax:
struct icrocery_entrance
char Entrance_name [50];
int Entrance_size;
coory_entrance;
Alle Geschäfte können den Strukturmeingang mit individuellen Namen und Größen verwenden.
Was ist Vererbung?
Es ist ähnlich wie ein Sohn die Besitztümer seines Vaters und der Sohn kann auch einige andere Besitztümer hinzufügen. Die Klasse kann entweder eine Basisklasse oder eine abgeleitete Klasse sein, in der erstere als Basis zur Bildung des letzteren angesehen werden kann. Die abgeleitete Klasse fügt nur wenige andere Eigenschaften hinzu, abgesehen von dem, was sie von der Basisklasse erhält. Wenn wir das obige Beispiel betrachten, kann das Lebensmittelgeschäft weiterhin an ein bestimmtes Lebensmittelgeschäft wie das XYZ -Lebensmittelgeschäft abgeleitet werden.
Nachdem wir mit den grundlegenden Konzepten vertraut sind, können wir uns auf den tatsächlichen Unterschied zwischen Klasse und Struktur befassen.
Wie unterscheiden sie sich?
- Wiederverwendbarkeit: Wenn Klassen das grundlegende Rahmen bilden, können sie wiederverwendet werden. Strukturen sind jedoch einzelne Elemente mit bestimmten Eigenschaften, sodass sie nicht wiederverwendet werden können. Zum Beispiel kann die Lebensmittelgeschäftsklasse für jede Art von Lebensmittelgeschäft verwendet werden, aber der Struct Grocery_entance ist spezifisch dafür spezifisch und es macht keinen Sinn, sie in anderen Klassen wiederzuverwenden.
- Sichtweite: Alle Funktionen in einer Klasse stehen seinen Objekten öffentlich zur Verfügung. Zum Beispiel haben wir eine Funktion namens "Dinge" unter der Klasse "Store". Die Funktion "Dinge" ist für alle ihre Objekte wie "Lebensmittelgeschäft", "Schreibwarenladen" usw. sichtbar. Eine solche Sichtbarkeit ist mit Strukturen nicht möglich, da die Daten von Struct auf sich selbst beschränkt sind und für andere Strukturen nicht sichtbar sind. Um die Dinge klar zu machen, können wir sagen, dass die Daten von 'coory_entance' in allen anderen Geschäften nicht öffentlich sichtbar sind.
- Nach Referenz verabschieden und nach Wert bestehen: Übergeben durch Referenz sendet nur den Speicherort und nicht die tatsächlichen Daten an die Funktionen. Dies bedeutet, dass sich die Änderung in den entsprechenden Funktionen bei der Änderung des Wertes spiegelt. Durch den Wert nach Wert sendet der Wert nur den Wert an die Funktion. In diesem Fall wird eine Änderung des Wertes nach dem Senden nicht in der Funktion widerspiegelt. Die Klasse verwendet Pass nach Referenz und Struct verwendet den Pass -Wert.
- Nachlass: Klassen können weiter geerbt werden, um Unterklassen zu bilden, aber Strukturen können die Vererbung nicht verwenden. Zum Beispiel gibt der Klassengeschäft seine Funktionen für den Subklassen-Lebensmittelgeschäft ". Aber die Struktur "Lebensmittelerschaft" kann keine Funktion erben. Wir können sagen, dass es hier kein Konzept wie Substruktur gibt.
- Standard -Sichtbarkeit: Alle Mitglieder einer Klasse werden standardmäßig als private Einheiten gehalten, während die Mitglieder einer Struktur standardmäßig als öffentliche Einrichtungen aufbewahrt werden.
- Die Größe einer leeren Klasse und Struktur: Die Klasse verwendet eine Größe von 1 Byte, auch wenn es leer ist, während Struct kein Speicher verwendet, wenn es leer ist. Dies bedeutet, dass wir sagen können, dass die Größe einer leeren Struktur 0 Bytes entspricht.
- Müllsammlung: Die Müllsammlung ist mit Klassen möglich, da sie Pass für Referenz verwenden. Daher ist es einfacher, die Reinigung an einem Ort durchzuführen, an dem die Daten gespeichert werden. Auf der anderen Seite ist die Müllsammlung mit Struktur nicht möglich, da sie Pass nach Wert verwendet und die Daten an verschiedenen Stellen verstreut sind.
- Speicherverwaltung: Da die Klasse Müllsammlungen zulässt, ist auch die Speicherverwaltung effektiv. Es ist jedoch nicht so wirksam mit Strukturen.
- Konstrukteur: Ein Konstruktor initialisiert die Klasse im Allgemeinen mit bestimmten bestimmten Werten. Wir können es wie etwas betrachten, das mit Werten initialisiert wurde. Wenn eine neue Klasse erstellt werden muss, wird der Konstruktor aufgefordert, Speicher für diese Instanz zuzuweisen. Wir können sogar Werte als Argumente übergeben, während wir einen Konstruktor anrufen. Lassen Sie uns jetzt zu unserer tatsächlichen Diskussion kommen. Klassen erlauben Konstrukteure aller Art, z. B. mit oder ohne Argumente, während Strukturen den Konstruktoren nur mit Argumenten erlauben, ich.e. die parametrisierten Konstruktoren.
- Zerstörer: Ein Destruktor wird aufgerufen, wenn wir eine Instanz einer Klasse löschen müssen. Der Destruktor wiederum löscht diese Instanz und fördert die Erinnerung. Eine Klasse kann einen Destruktor verwenden, während eine Struktur nicht kann.
- Mitgliedsvariablen Initialisierung: In den Klassen können wir die Mitgliedsvariablen direkt initialisieren. Eine solche Initialisierung ist mit Strukturen nicht möglich.
- Objekterstellung: Die allgemeine Syntax für die Erstellung von Objekten im Klassen lautet:
Demo obj = New Demo ();
Dies bedeutet, dass wir das Schlüsselwort "neu" verwenden müssen, während wir Objekte einer Klasse erstellen. Dies ist nicht erforderlich, wenn Objekte von Strukturen erstellt werden. Schauen Sie sich einfach ihre Syntax an:
Demo obj;
Es funktioniert auch ohne das Schlüsselwort "neu" perfekt.
Wann verwendet werden, und wann Sie Struktur verwenden können?
Da die Klassen bei der gemeinsamen Übergabe von Daten und Funktionen flexibler sind, können wir uns dafür entscheiden, wenn die verwendeten Objekte komplex und groß sind. In unserem Beispiel kann ein Einkaufszentrum den Klassengeschäft verwenden, um das System besser auszudrücken. Strukturen sind jedoch auf kleinere Objekte beschränkt, da sie vergleichsweise weniger effektiv sind als Klassen. Wenn Sie ein eigenes Geschäft entwerfen, sind Strukturen die bessere Wahl.
Wie man eine Struktur in eine Klasse umwandelt und umgekehrt?
Vielleicht haben Sie die Begriffe "Boxen" und "Unboxing" gehört, um eine Struktur in eine Klasse umzuwandeln, und umgekehrt. Obwohl dies wirksame Prozesse sind, die uns bei der Umwandlung helfen, sollten sie mit Vorsicht behandelt werden. Da dies die Speicherorte direkt beeinflusst, hat die Leistung unseres Systems enorme Auswirkungen. Darüber hinaus beeinflusst es die Müllsammlungsprozesse und führt zu einer Ineffizienz des Gesamtsystems. Verwenden Sie daher diese Conversions nur bei Bedarf.
Schauen wir uns die oben genannten Unterschiede in der tabellarischen Form an.
S.NEIN | Konzepte | Unterschiede | |
Klasse | Struktur | ||
1 | Wiederverwendbarkeit | Völlig wiederverwendbar | Nicht wiederverwendbar |
2 | Sichtweite | Alle Funktionen einer Klasse sind für ihre Objekte sichtbar | Die Daten eines Objekts einer Struktur sind für andere Objekte derselben Struktur nicht sichtbar |
3 | Nach Bezug | Verwendet Pass für Referenz | Verwendet Pass nach Wert |
4 | Nachlass | Die Funktionen einer Klasse können durch ihre Unterklassen vererbt werden; ermöglicht Vererbung | Erlaubt niemals Vererbung |
5 | Standard -Sichtbarkeit | Alle Mitglieder einer Klasse sind standardmäßig privat | Alle Mitglieder einer Struktur sind standardmäßig öffentlich öffentlich |
6 | Größe bei leer | Die Größe einer leeren Klasse beträgt 1 Byte | Die Größe der leeren Struktur beträgt 0 Bytes |
7 | Müllsammlung | Da es PASSBY -Referenz verwendet, ist die Müllsammlung möglich | Da es Pass nach Wert verwendet, ist die Müllsammlung nicht möglich |
8 | Speicherverwaltung | Die Leichtigkeit des Müllsammlungsprozesses hilft bei der effektiven Speicherverwaltung | Der Mangel an Müllsammlung führt zu einer schlechten Speicherverwaltung |
9 | Konstruktoren | Ermöglicht Konstruktoren aller Art, z. B. mit oder ohne Parameter | Erlaubt nur parametrisierte Konstruktoren |
10 | Zerstörer | Kann es benutzen | Kann es nicht benutzen |
11 | Mitgliedsvariablen Initialisierung | Ermöglicht die direkte Initialisierung von Mitgliedsvariablen | Erlaubt keine direkte Wortinitialisierung von Mitgliedsvariablen |
12 | Objekterstellung | Es ist ein Muss, das Schlüsselwort "neu" während der Objekterstellung zu verwenden | Es ist optional, das Schlüsselwort "neu" während der Objekterstellung zu verwenden |
13 | Wann zu verwenden? | Besser für größere und komplexe Objekte, bei denen die Vererbung erforderlich ist | Besser für kleinere und einfachere Objekte, bei denen die Vererbung weniger wichtig ist. |
Wir haben fast alle Unterschiede zwischen Klasse und Struktur abgedeckt, und wenn Sie das Gefühl haben, dass etwas fehlt, lassen Sie es uns bitte wissen. Lassen Sie uns gemeinsam lernen und das Beste aus diesem Wissen machen!
- « Unterschied zwischen aktiver und passiver Immunität
- Unterschiede zwischen Zytokinen und Chemokinen »