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

Informatiker Board » Themengebiete » Informatik in der Schule » Was sind Konstruktoren » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 7 Beiträge
gg_

und Danke für deine Tipps (sind für mich sehr hilfreich)
gg_

Danke smile
eulerscheZahl

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 .
eulerscheZahl

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");
gg_

muss man denn unbedingt ein Konstruktor erstellen?
eulerscheZahl

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.
gg_ Was sind Konstruktoren

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: