Soldiar Geschrieben 7. Dezember 2007 Teilen Geschrieben 7. Dezember 2007 Hallo, muss eine kurze hausarbeit anfertigen, und bin etwas überfordert bei einer Frage: 1. Wozu dient der Konstruktor? 2. Wie kann ich Konstruktoren überladen ? 3. Wie stelle ich meinen Standardkonstruktor wieder her? Aufgabe 1 und 2 sind mir ja noch geläufig, jedoch bin ich bei Aufgabe 3 etwas überfordert, ich könnte zwar einfach "sub new() end sub" eingeben, aber dies ist doch nicht wirklich sauber, oder? Falls ihr gute Quellen für Frage 1 und 2 hättet wäre ich natürlich auch um diese dankbar, da die Hausarbeit bewertet werden soll und daher ein wohl größeres Ausmaß empfehlenswert ist. mfg Christian, 19, Kassel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cadpax Geschrieben 7. Dezember 2007 Teilen Geschrieben 7. Dezember 2007 In .NET ist es so, dass falls ein erweiterter Konstruktor der Standardkonstruktor überschrieben wird. (Was auch durchaus Sinn macht, denn manche Klassen brauchen einfach ein paar Daten um arbeiten zu können ) Der implizite Standardkonstruktor existiert nur dann, wenn er nicht durch einen parameterlosen Konstruktor explizit überschrieben oder durch einen parametrisierten überladen wird. Quelle: Buch (auch weitere Infos zu Konstruktoren) Um ihn wieder herzustellen, ist deine Lösung richtig und sauber. Eine andere ist mir afaik nicht bekannt. Mit freundlichen Grüßen, Cadpax Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Soldiar Geschrieben 8. Dezember 2007 Autor Teilen Geschrieben 8. Dezember 2007 Hallo, Vielen Dank Cadpax. ja, genau das ist nämlich das Problem, diese Lösung hat er uns schon gezeigt und meinte: "aber das geht noch sauberer". Und nun frage ich mich, was er will. Naja ist ja wochenende, vllt. weiß ja noch jemand, wie es angeblich besser gehen soll mfg Christian, 19, Kassel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
korph Geschrieben 11. Dezember 2007 Teilen Geschrieben 11. Dezember 2007 Was ist "sauber" beim Herstellen des Standardkonstruktors? Hier die Lösung (meine persönliche Meinung): Wenn der Standardkonstruktor New() überschrieben wird, ist er weg. Das bedeutet, man muss ihn erneut anlegen. Also ist Sub New() End Sub eine Lösung. Jetzt die eigentliche Antwort: Als Zugriffsmodifizierer bei den lieben Konstruktoren kommen PUBLIC, FRIEND und PRIVATE in Frage. Der Standardkonstruktor aus der Systemklasse ist immer PUBLIC definiert. Das muss eigentlich nicht mit angegeben werden. Da Du eine Hausarbeit anfertigen musst, vermute ich hinter deinem Namen einen Studenten oder Schüler. Und die müssen ja bekanntlich auch die Grundlagen und Hintergründe lernen :cool: Die "saubere" Lösung ist Public Sub New() End Sub, obwohl es nichts anderes ist. Nun aber zur Begründung. Du kannst natürlich auch FRIENDS oder PRIVATE setzen. Bei PRIVATE wird der Zugriff generell verhindert. Der Konstruktor kann außerhalb der Klasse nicht aufgerufen werden. Was macht das jetzt für einen Sinn Wofür dient jetzt der Konstruktor? Er verhindert, dass die Klasse mit dem Schlüsselwort NEW instanziert werden kann. Es gibt ja auch Klassen, die ohne Instanzierung eine gewisse Funktionalität haben können und auch nicht instanziert werden dürfen. "sauber" ist also ein Hinweis auf die Verwendung der Klasse bzw. des Konstruktors. Aber so tief wird ja in Schule und Unis bestimmt nicht hineingestiegen. Habe gestern erst gehört, dass an einer Uni Delphi und Pascal unterrichtet wird :uli gruß korph Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Soldiar Geschrieben 11. Dezember 2007 Autor Teilen Geschrieben 11. Dezember 2007 Hallo, ja war für die schule. leider musste die hausarbeit bereits heute abgegeben werden. Daher kommt deine info leider zu spät für meine Hausarbeit, jedoch nicht zu spät um es mir zu merken anscheinend wollte er es wohl so hören, aber so wie es scheint kam niemand da drauf (zum. viele meiner mitschüler nicht, da sie wohl auf eine google suche zum thema lediglich diesen beitrag von mir fanden) Vielen Dank nochmals. mfg Christian, 19, Kassel ps: pascal ist schon hart, jedoch denke ich sollte man delphi nicht so hinabstufen. die entwicklungsumgebung ist .net konform und aktuell, das was bei einigen anderen sprachen fehlt an entwicklungsumgebung, sinnvollen sprachaufbau sowie .net konformität hat delphi längst. Auch wenn es nicht die "modernste" Sprache ist, ist sie auch längst nicht die älteste und zu verachtenste, oder? Denke jedoch, dass sie für eine universität nicht wirklich geeignet ist, im Gegensatz zu FOS, HBFS, BG, BFS, BS und OG, wo ich denke dass diese sprache nicht fehl am platz wäre, wenn borland ein wenig mehr studentenunterstützung geben würde (was microsoft ja *leider* tut, und java /php u.a. nicht benötigen). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
korph Geschrieben 11. Dezember 2007 Teilen Geschrieben 11. Dezember 2007 viele meiner mitschüler nicht, da sie wohl auf eine google suche zum thema lediglich diesen beitrag von mir fanden DASs ist das Problem... Aufgabenstellung = Google etwas annäherndes Finden = Lösung haben Lösung vortragen = enttäscht sein wenn fehlerhaft Aber wir leben ja in einer google-Gesellschaft ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Soldiar Geschrieben 11. Dezember 2007 Autor Teilen Geschrieben 11. Dezember 2007 Hallo, ja. das ärgerliche war halt, dass man zu dem thema eigentl. nirgends etwas finden konnte. Ob das nun an Quellenmangel oder persönlicher Inkompetenz liegt vermag ich nicht zu sagen. Zumindest war ich erleichtert, dass ich nicht der einzige war, der es nicht fand, und das obwohl ich 4 Bücher zu vb.net durchsucht habe. mfg Christian, 19, Kassel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.