Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » Was sind Konstruktoren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Was sind Konstruktoren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Was sind Konstruktoren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Ich bin gerade in Java eingestiegen und hab nicht verstanden, was Konstruktoren machen. Wozu brauche ich einen Konstruktor, wozu ist das gut? und was macht der default-Konstruktor die man nicht in der Klasse sieht.

Meine Ideen:
06.12.2014 17:53 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wenn du eine Klasse hast und eine Instanz davon erzeugst, dann rufst du dabei den Konstruktor auf.
Bsp.: JButton button = new JButton();
wenn du dem Button aber beim Erstellen noch einen Text mitgeben willst, dann geht das mit
JButton button = new JButton("klick mich");

Das erste Beispiel verwendet einen Konstruktor, der keine Argumente entgegennimmt. Hier wird letztlich nur der Speicher für das Objekt reserviert, sonst passiert nichts. Dafür gibt es den default Konstruktor.
Im zweiten Beispiel wird noch ein Text übergeben, der dann auf dem Button zu sehen ist. Hier muss man selbst tätig werden und den Konstruktor schreiben.

__________________
Syntax Highlighting fürs Board (Link)
06.12.2014 18:22 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

muss man denn unbedingt ein Konstruktor erstellen?
06.12.2014 18:27 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wenn du Argumente übergeben willst: ja.
Wenn du nur Speicher reservieren willst: nein.
Aber es kann manchmal hilfreich sein:
mit einem Konstruktor, der Argumente entgegennimmt, kann man darauf verzichten, diese noch nach der Erzeugung zuweisen zu müssen.

siehe obiges Beispiel:
mit JButton button = new Button("klick mich");
ersetze ich
JButton button = new JButton();
button.setText("klick mich");

__________________
Syntax Highlighting fürs Board (Link)
06.12.2014 18:49 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo gg_, du hast mir eine private Nachricht geschickt, aber ich kann dir nicht antworten.
Um das zu ändern, gehe auf Profil -> Einstellungen editieren -> Wollen Sie private Nachrichten empfangen

Da der Inhalt der PN nicht wirklich geheim ist, kopiere ich hierher, was ich per PN nicht abschicken konnte.



es ist schonmal erfreulich, dass es funktioniert.
Was man noch besser machen könnte: du prüfst hier den selben Wert (i%4) auf mehrere Zahlen. Dafür gibt es switch:
code:
1:
2:
3:
4:
5:
6:
switch (i % 4) {
    case 0: john.setPenColor(Color.blue); break;
    case 1: john.setPenColor(Color.black); break;
    case 2: john.setPenColor(Color.red); break;
    case 3: john.setPenColor(Color.green); break;
}

Und die Variablen k und i haben immer den selben Wert. Man könnte also auf k verzichten und stattdessen john.forward(15*i); nehmen.

Zur Frage, wie man eine Programmiersprache am besten lernt:
Literatur: die javainsel ist recht beliebt. Gibt es in Papierform zu kaufen oder kostenlos als Download.
Dann hilft es, sich Aufgaben zu suchen, an denen man Spaß hat. Ich knoble z.B. gerne an mathematischen Rätseln. Auf Project Euler gibt es viele davon. Die Seite ist zwar eher mathematisch orientiert, aber ohne Programmierkenntnisse kommt man dort auch nicht weiter. Gerade die ersten Rätsel sind durchaus etwas für Anfänger. Auch ganz nett, aber eher für Fortgeschrittene: hacker.org

Ach ja: stelle solche Fragen bitte künftig nicht als persönliche Nachricht.
Zum einen kriegst du dann noch Antworten von anderen Nutzern (die hier leider fast nur aus Karlito bestehen, das Forum ist recht ausgestorben), zum anderen hat vielleicht jemand das selbe Problem wie du und landet dann per Suchmaschine bei der Lösung.

PS: hier ist das "Du" üblich Augenzwinkern .

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 09.12.2014 16:34.

09.12.2014 16:33 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke smile
09.12.2014 17:28 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

und Danke für deine Tipps (sind für mich sehr hilfreich)
09.12.2014 17:34 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » Was sind Konstruktoren