Die meisten Programmierer wissen, dass ein Computerprogramm nichts enthält mehr als Daten und Befehle zur Manipulation von Daten . Ihr Ziel , als Programmierer , ist es, Daten in die effiziente und leichte Struktur möglich darzustellen . Beide " Klassen " und " Strukturen " können Sie verschiedene Arten von Daten darstellen. Viele Sprachen verfügen beide Klassen und Strukturen , einschließlich C + + , C #, Java und Visual Basic. ( Einige Sprachen beziehen sich auf eine Struktur als " struct . ") Sie können instanziieren beide Klassen und Strukturen in der herkömmlichen Art und Weise und auf die Mitglieder sowohl mit Punkt -Punkt- Notation , aber die Unterschiede zwischen den beiden Datentypen überwiegen diese paar Ähnlichkeiten . Zweck
Klassen bilden die Grundlage der meisten modernen objektorientierten Sprachen und ermöglichen endlose Manipulation. Wenn Sie eine Klasse verwenden, um Ihre Daten repräsentieren , haben Sie die volle Leistung einer objekt-orientierten Programmiersprache zur Verfügung. Machen Sie eine Klasse Ihr Standard-Datentyp und verwenden Sie es , wenn Sie nicht sicher sind, welche Art am besten funktioniert Wert sind . Verwenden Sie eine Struktur , im Gegensatz , nur, wenn Sie eine bestimmte Anzahl von Nicht-Referenz- Typ Werte als Einheit bearbeiten müssen . Programmierer verwenden normalerweise Strukturen geometrischer Objekte , Spielständen und anderen relativ einfachen Informationen darstellen .
Basiswert Typ
Eine Struktur ist ein Werttyp , während eine Klasse ist eine Referenz Typ . Werttypen repräsentieren Zahlen und Text , und existieren nur in den Stapel. Dies bedeutet, dass wenn Sie eine Struktur kopieren Sie ein völlig neues Element im Speicher zu erstellen. Änderungen an der neuen Sache beeinflussen nicht das ursprüngliche Objekt . Sollwerttypen hingegen gibt es sowohl auf dem Stapel und dem Heap. Wenn Sie eine Klasse zu kopieren, sind Sie wirklich nur das Kopieren der Referenz -Adresse an einen Speicherplatz auf dem Heap . Also, wenn Sie eine Kopie eines Objekts zu ändern , ändern Sie auch alle Kopien im Speicher.
Destruktoren
Abhängig von der Sprache Sie verwenden, Sie kann oft Destruktoren mit Class-Objekte . In C + + sowie in ADO.Net Programmierung ermöglichen Destruktoren Sie sicher, dass der Prozessor Speicher intensive Objekte vernichtet , sobald sie nicht mehr benötigt werden . Allerdings wissen viele Programmiersprachen , wie C # , nicht erlauben, Destruktoren mit einer Struktur zu verwenden. Stattdessen verfügt der Garbage Collector Objekt von Strukturen automatisch .
Vererbung
Als Referenz Typen, Klassen können von anderen Klassen erben . Das heißt, Sie können eine " boy" -Klasse, die alle Objekte und Eigenschaften erbt von einer " Person " -Klasse zu erstellen . Im Gegenzug kann die Person -Klasse erben die Mitglieder der " Kreatur " Klasse. Strukturen , können dagegen nicht von anderen Strukturen erben. Folglich sind sie von Natur aus verschlossen.