Klasse Konto |
10.01.2015, 12:28 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Klasse Konto Meine Frage: Hi Leute, ich hätte noch ein Problem. Erst einmal der Code hierzu:
Meine Ideen: In der main - Funktion zeigt er mir zwei Fehler an. Den ersten bei der Erzeugung der Referenz auf Konto. Den zweiten bei der Methode h.drucken(). Ich bin mir in beiden Fällen nicht sicher, was übergeben werden muss. Vielen Dank für Eure Hilfe :-) |
|||||||
|
||||||||
10.01.2015, 12:58 | Auf diesen Beitrag antworten » | |||||||
eulerscheZahl |
|
|||||||
10.01.2015, 14:51 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Okey, erstmal vielen Dank für die Korrektur. Da sind noch so einige Sachen dabei, wo ich nicht ganz verstehe: Für was braucht man eigentlich den Konstruktor? Was passiert hier eigentlich genau?
Meiner Vermutung nach ist class Konto der Konstruktor? |
|||||||
10.01.2015, 14:57 | Auf diesen Beitrag antworten » | |||||||
eulerscheZahl | Du musst unterscheiden zwischen einer Klasse und einer Instanz. Die Klasse sagt nur, dass es Variablen gibt (kontoinhaber, kontostand) und Funktionen (einzahlen, auszahlen). Wenn du in diese Variablen wirklich etwas reinschreiben willst, brauchst du eine Instanz. Mit Hilfe des Konstruktors kannst du eine Instanz erzeugen. Er hat die Syntax public Klassenname(optional: Argumente) {...}. Er besitzt keinen Rückgabetyp. Im Konstruktor wird der Speicher für die Instanz reserviert und die Klassenvariablen können befüllt werden, eine Datei geöffnet oder was du eben gerade brauchst. |
|||||||
Anzeige | ||||||||
|
||||||||
10.01.2015, 15:29 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Verstehe ich es richtig, dass es auch möglich wäre, das folgende zu schreiben?
|
|||||||
10.01.2015, 15:35 | Auf diesen Beitrag antworten » | |||||||
eulerscheZahl | Das ist sogar recht üblich. |
|||||||
10.01.2015, 16:12 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Vielen Dank :-) |
|||||||
10.01.2015, 16:14 | Auf diesen Beitrag antworten » | |||||||
Karlito |
Das ist sogar mehr als üblich. Ein Konto ohne Kontonummer ist nicht konsistent. In der objektorientierten Welt sollte es möglichst so sein, dass ein Objekt immer in einem konsistenten Zustand ist und dass es keine Möglichkeit gibt einen Inkonsistenten Zustand zu erreichen. Darum gilt auch das Geheimnisprinzip, womit der innere Zustand eine Objektes nur durch Akzessoren (getter und setter) manipuliert werden darf. Mit diesen Akzessoren ist es dann möglich den Übergang von einem Konsistenten Zustand in einen Anderen sicher zu stellen. Eine sehr unschöne Verwirrung stifet das Wort "Konstruktor", da der Konstruktor das Objekt nicht konstruiert. Er initialisiert das Objekt nur und stellt damit den ersten konsistenten Zustand her. Die eigentliche Konstruktion ist die Einheit aus Allokation und Initialisierung. Das wird meistens vom new-Operator umgesetzt. Ich hoffe ich habe damit keine Verwirrung gestiftet. Gruß, Karlito |
|||||||
10.01.2015, 16:40 | Auf diesen Beitrag antworten » | |||||||
eulerscheZahl |
das habe ich glatt übersehen.
|
|||||||
11.01.2015, 11:35 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Danke, Karlito für den Hinweis. private hatten wir zu diesem Zeitpunkt noch nicht. (Kann das sein, dass private auch unter den Oberbegriff Kapselung fällt?) |
|||||||
11.01.2015, 12:01 | Auf diesen Beitrag antworten » | |||||||
Karlito | Ja. Wobei genau genommen private nur ein Mittel zur Umsetzung der Kapselung ist. private ist ein Zugriffsmodifikator, der verhindert, dass eine mit private gekennzeichnete Variable von außen zugegriffen werden kann. Edit: darf ich fragen, was Du studierst? Gruß, Karlito |
|||||||
11.01.2015, 12:10 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Klar darfst du Ich studiere Medieninformatik im 1. Semester. Ca 80% Programmierung, Mathe und Grundlagen der IT und ungefähr 20% Gestaltung (Webdesign, Fotografie, Film, Benutzeroberflächen in Apps verbessern, usw). |
|||||||
11.01.2015, 14:33 | Auf diesen Beitrag antworten » | |||||||
Karlito | Ah, cool. Ja, Medieninformatik ist schon zu einem großen Teil Informatik, Mehr Gestaltung hat man dann in Kommunikationsdesign u.ä., soweit ich weiß. Viele überrascht es, dass der Mathe/Informatik-Anteil so hoch ist. Ich persönlich finde es gut so, auch wenn ich selbst nicht Medieninformatik studiere. An der Stelle überrascht mich jedoch ein wenig, wie eure Vorlesung aufgebaut ist und dass das Geheimnisprinzip erst gelehrt wird, nachdem ihr die erste Klasse gebaut habt. Wenn man es einmal falsch gemacht hat, dann prägt es sich ja unter Umständen so ein... Gruß, Karlito |
|||||||
11.01.2015, 15:03 | Auf diesen Beitrag antworten » | |||||||
SarahK. | Ich finde den Studiengang sehr cool, da er einfach eine Mischung aus Informatik und Kreativität ist.´:-) |
|