Java "static" nicht verstanden und Programm funktioniert (noch) nicht

Nein, der Standardkonstruktor wird nicht immer aufgerufen. In dem Fall wird nur dein eigener ausgeführt.
 
Danke! Das funktioniert. :)

Ich hatte schon danach gesucht. Leider nach den falschen Begriffen und somit hab ich nichts Brauchbares gefunden.
 
Abgesehen vom Konstruktor-Problem: Es fehlt in dem Code noch irgendwo ein "static". ;)
 
Meinst du mit "irgendwo" eine ganz bestimmte Stelle? :D
 
Jackpot :P denke mal drüber nach warum nextId so nicht funktioniert und warum dir static helfen könnte ;)
Kannst ja mal n paar Instanzen deiner Klasse erstellen und schauen was passiert.
 
Zuletzt bearbeitet:
Ok, ich hatte schon eine Vermutung ... :D

nextId läuft nur pro Instanz und damit ist diese ID nicht eindeutig. Ich bräuchte static, damit die ID für jede Instanz eindeutig ist. (E: Bzw. jede Instanz auf die gleiche nextId zugreifen kann.)

Stimmts oder stimmts? :D
 
Zuletzt bearbeitet:
Wobei in der Aufgabenstellung nextId als Objektvariable beschrieben ist...was eigentlich heißt, naja, dass sie zur Objektinstanz gehört, also nicht static ist (wäre eine Klassenvariable). Aber gut, so machts auf jeden Fall Sinn. Anders nicht.
 
Wenn das in der Prüfung dran kommt, dann schreib ich da static dazu und vielleicht ne kleine Anmerkung. :D

Die 2. Aufgabe ist auch gut :D

afgqtf3y.png


System.out.println(zahl + " ist durch 3 teilbar"; :freak:
Ist natürlich klar, was er damit meint. Aber mathematisch ist es so korrekt ^^
 
black90 schrieb:
Bei der Equals brauchst kein check auf null, da man mit null Objekten ein false vom instanceof bekommt und der code nicht weiter geht.

Ich bezog mich auf den Code vom TS, da kann es krachen.

black90 schrieb:
Was der Compiler bei Strings macht ist egal, es geht um die Code Lesbarkeit, die ist sogar wichtiger als die Effizienz.

Es war dir oben immerhin einen ganzen Absatz wert ("PC-Killer"). Und was bei der Erstellung eines neuen StringBuilders samt Methodenverkettung lesbarer sein soll, steht wohl in den Sternen.

black90 schrieb:
Naja, Variablen umbenennen ist immer eine Sache die man lieber lassen als tun sollte. Um sowas zu vermeiden gibt es extra Leute die sich mit UML die Zeit totschlagen. Vorausplanen statt pfuschen.

Ist doch gar nicht der Punkt. Es geht darum, dass Implementierungsdetails austauschbar sind, weil sie außerhalb gar nicht erst bekannt sind und niemand Abhängigkeiten auf diese besitzt.
 
Zuletzt bearbeitet:
Naja, Teilbarkeiten gehen gut mit dem Modulo Operator. Wenn der Rest = 0, dann ohne Rest teilbar.
Müsstet noch irgend ein Logik Modul haben wo sowas gemacht wird. 2*Zahl = immer grade usw :)

Zum Konstruktor:
Der Default wird nie aufgerufen, da du new mit Parametern machst. Und der mit Parametern setzt die Variable ID nie fest. Ergo keine 100
 
Zuletzt bearbeitet:
Ist schon klar. Aber die Frage "Ist die Zahl x durch 3 teilbar" kann man immer mit ja beantworten, weil sich jede Zahl durch 3 teilen lässt. Von Rest steht da nichts. :freak:

//
Danke. :D
Das habe ich mit this() schon nachgeholt. :)
 
Zuletzt bearbeitet:
Ja, die meinen aber ohne Rest, aber deine Antwort ist korrekt da ihr Text Pfusch ist ^^
 
Zurück
Oben