Warum brauchen wir einen Konstruktor in OOP?
Ich bin neu in der OOP. Ich bin noch in einer Lernphase.
Warum brauchen wir die Konstruktoren, Wenn wir initialisieren können die Werte für die Eigenschaften (Variablen) durch das schreiben eines "Initialize-Funktion"?
Grundsätzlich, warum schreiben wir einen Konstruktor, wenn wir die gleichen Ergebnisse erzielen, auch durch das schreiben einer Funktion zum initialisieren der Variablen?
InformationsquelleAutor Arjun Varrier | 2014-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
WIRD der Konstruktor der "Initialize-Funktion"
Anstatt den Aufruf von zwei Funktionen
Rufen Sie einfach
Die Logik im Konstruktor kann identisch sein, um die Logik innerhalb der initialize-Funktion, aber es ist viel aufgeräumter und verhindert, dass Sie die Benennung Ihrer Funktion initialize(), me naming mir initialize_variables(), und jemand anderes benennen ihrigen init_vars()... die Konsistenz ist hilfreich.
Wenn Ihr Konstruktor ist sehr groß, können Sie immer noch wollen, um split-Variablen-Initialisierung in eine eigene Funktion und die Funktion aufrufen, von Ihrem Konstruktor, aber das ist eine Ausnahme, um das Szenario.
Das ist wieder eine Ausnahme von der "standard", wo Sie möglicherweise verwenden möchten, eine eigene Funktion zum initialisieren von Variablen (oder andere Verarbeitung "shared" von jeder Instanziierung des Objekts). Es entfernt nicht die Nützlichkeit eines Konstruktors, noch bedeutet dies, dass ein Konstruktor sollte ersetzt werden durch eine Variablen-Initialisierung-Funktion. In besonderen Fällen gibt es nichts, Sie zu stoppen verlassen der Konstruktor leer und den Aufruf von anderen Funktionen, aber das ändert nichts an dem Konzept der Konstruktor in das OOP-Paradigma.
Ich vertrete nicht die Ansicht, dass Konstruktoren sind nutzlos, nur, dass Konstruktoren != initialisieren Methoden. Beide haben Ihre Gründe für Ihre Existenz. Diese Antwort deutet darauf hin, dass die Initialisierung Methoden sind nie mehr als refactoring-tools, so dass alle den code nicht gebündelt in einer Konstruktor-Methode. ,, Ehrlich gesagt, ist nicht wahr.
Ja sind Sie 🙂 zu zitieren, Ihre Frage: "Warum benötigen wir Konstrukteure". Eine Verwendung von eine initialize-Methode, ist die Umgestaltung von code aus einem Konstruktor, ich gab dieses nur als ein Beispiel dafür, warum möchten Sie vielleicht noch verwenden.. es war nicht eine vollständige Liste. So oder so, ich habe erklärt, meine Grund, warum ich glaube, wir müssen Konstruktoren.
Es ist nicht meine Frage. Ich stellte eine Antwort unten, bevor Sie meine Kommentare. Lesen. Wenn Sie denken immer noch ich argumentiere, dass Konstruktoren sind sinnlos, ich gebe auf. Du bist frei zu denken, was man will.
InformationsquelleAutor Jon Story
Also Antwort ist einfach
Warum schreiben wir einen Konstruktor?
Denn in C kann man schreiben,
int i;
wenn schreiben, wie dies Im oben genannten Fall-Datentyp und Variablen definiert, wenn Sie definieren, wie dieses Speichers, der für
i
variable.Also einfach hier definieren wir die Klasse Namen und Variablen-Namen(Objektnamen) können wir erstellen Speichers, der für Klasse Namen.Beispiel
myClass objectName;
Aber in C++ - Schlüsselwort new verwendet wird für die dynamische Zuweisung von Speicher, so dass dieser dynamische Speicher, die wir zuordnen können, um unsere Klasse, aber hier mein Beispiel
myClass
ist unsere Klasse und wir vergeben wollen, um dynamisch reservierten Speicher.So
myClass objectName = new myClass();
einfach und Konstruktor Zuweisung von Speicher für die Klasse variable ist, die als Konstruktor bezeichnet wird.`
InformationsquelleAutor
Ist es üblich obligatorische Dinge in den Konstruktor und optional diejenigen in die
Initialise
Funktion.Betrachten Sie zum Beispiel ein Verstärker, der erfordert eine Stromquelle, damit würde geliefert werden, um den Konstruktor. Logisch, möchten Sie vielleicht, um es einzuschalten, und legen Sie seine power-Niveau, aber man könnte argumentieren, dass Sie vielleicht nicht wollen, das zu tun, bis später. In pseudo-code:
Beispiel, oben, ist eher kindisch, aber es die Konzepte veranschaulicht, die im Spiel sind. Es ist immer eine Frage des Designs, aber, und Meinungen variieren.
Einige Klassen von Objekt, jedoch zu erfüllen haben offensichtliche set-up-Operationen, die während Ihrer Bauphase. In diesen Fällen ist die Anforderung, eine Konstruktor ist sehr einfach zu verstehen. Zum Beispiel, wenn Sie Ihr Objekt benötigen möglicherweise eine variable Menge an Speicher, der Konstruktor wäre ein logischer Ort zu reservieren und den Destruktor oder finaliser wäre eine logische Ort, um Kostenlose es wieder.
InformationsquelleAutor Xharlie
Selbst wenn Sie Sie nicht verwenden Konstruktor ruft implizit durch Ihre Sprache übersetzer, Wann immer Sie erstellen-Objekt.Warum?
Der Grund ist, dass es verwendet wird, für Objekt-Initialisierung bedeutet, dass die variable(Instanz), die wir erklären in unserer Klasse bekommen initialisiert auf Ihren default-Wert.
Ausgabe - Name: null
Alter: 0
"null" und "0" sind default-Werte, die impicitly setzen von default-Konstruktor.
InformationsquelleAutor MY TRICKS FOR YOU ALL
Weil Konstruktoren sind genau dafür: um zu vermeiden, mit einem "initialisieren Funktion"
Plus können Sie beliebig viele Konstruktoren, wie Sie wollen: Sie juste füttern einige Parameter, je nachdem, wie Sie wollen inialize Ihr Objekt.
du hast Recht, ich habe Ihre Bemerkung berücksichtigt
und Objekt-Konstruktion nicht-Polymorphismus
InformationsquelleAutor stackSaru
Konstruktor ist eine spezielle member-Funktion, die hat den gleichen Namen wie Klasse, name und aufgerufen, wenn ein Objekt der Klasse erstellt wird. Sie werden verwendet, um Daten zu initialisieren Feld im Objekt.
Konstruktor hat folgende Eigenschaften:
Er hat denselben Namen wie die Klasse Namen.
Es wird immer aufgerufen, wenn ein Objekt der Klasse erstellt wird.
Weitere Infos
https://en.wikipedia.org/wiki/Constructor_(Objekt-oriented_programming)
InformationsquelleAutor Yogendra Paudyal
die Rolle des Konstruktors ist die Initialisierung der Variablen/Werte.es ist die "Initialisierungs-Funktion".Der einzige Grund, warum ich finde, warum benutzen wir einen Konstruktor, anstatt einer normalen Funktion zum initialisieren der Variablen ist zu verhindern, sind verschiedene Leute mit unterschiedlichen Funktionsnamen und Mehrdeutigkeit vermeiden und es viel einfacher ist, verwenden Sie einen Konstruktor, wird automatisch instanziiert, sobald die Klasse führen,anstatt zu schreiben, einen separaten code für die Instanziierung.dies mag gering erscheinen und wie etwas, das erfordert nicht viel Arbeit,aber nur für ein sehr kleines Programm,bei größeren ist der struggle ist real.
InformationsquelleAutor gg_49