Was sind Konstruktoren

Neue Frage »

Auf diesen Beitrag antworten »
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:
 
Auf diesen Beitrag antworten »
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.
Auf diesen Beitrag antworten »
gg_

muss man denn unbedingt ein Konstruktor erstellen?
Auf diesen Beitrag antworten »
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");
 
Auf diesen Beitrag antworten »
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 .
Auf diesen Beitrag antworten »
gg_

Danke smile
Auf diesen Beitrag antworten »
gg_

und Danke für deine Tipps (sind für mich sehr hilfreich)
 
Neue Frage »
Antworten »


Verwandte Themen