Hi!

Das hat nichts mit Rundungsproblematik zu tun. Die von troloc vorgestellte Lösung bewirkt nichts, da

Math.random()*zahlenbereich2 

vom Compiler als double betrachtet wird. Somit hat er den Ausdruck nur in zwei einzelne Statements verpackt.

Die Lösung des ganzen ist recht simple. Vertausch mal zahlenbereich1 und zahlenbereich2 in der Berechnung.

Oder noch besser, benenn die Variablen direkt um zu untereGrenze aka zahlenbereich2 und obereGrenze aka zahlenbereich1.

Kleiner Tipp für dich: Gewöhne dir direkt an, die Variablen 'sprechend' zu benennen.

...zur Antwort

Hi!


Zur ersten Frage:

Setzt du keinen Modifier für ein Attribut/eine Methode wird der Default-Modifier (oft mit package bezeichnet) verwendet. Diese setzt die Sichtbarkeit auf eine Ebene zwischen private und protected.

Ein nur mit dem Default-Modifier versehenes Feld läßt sich nur innerhalb des selben Packages ansprechen. Im Gegensatz dazu kann ein mit protected versehenes Feld zusätzlich noch von Subklassen angesprochen werden.


Zur zweite Frage

Verwendest du Final bei einem Array (oder Hash*) kannst du die Variable einmal initialisieren - d.h. einmal die röße festlegen. Den Inhalt des Arrays jedoch kannst du ohne weiteres ändern.

...zur Antwort
Das Buch ist gut

Hi!

Die " markieren Zeichenketten - Strings -.

Der Compiler benötigt diese um zu erkennen, ob du eine Zeickenkette z.B. ausgeben möchtest oder ob du eine Variable verwendest.

Kleines Beispiel:

int bierflaschen = 10;
System.out.println(bierflaschen + " bierflaschen");

System.out.println(bierflaschen + bierflaschen);

Die erste Ausgabe ergibt: 10 bierflaschen Die zweite Ausgabe spuckt 20 aus - 10 Bierflaschen + 10 Bierflaschen = 20 ;) -.

In deinem Codebeispiel, markierst du mit den " " nach bierAnzahl einfach nur ein Leerzeichen.

...zur Antwort

Die reinste Form zeigte die andere Antwort. Diese ist aber leider nicht immer möglich bzw. nur per Umweg umsetztbar. Beispielsweise ist durch Reduktion der Anzahl der Parameter die Signatur der Methode nicht mehr eindeutig.

Die Alternative an dieser Stelle wäre ein Parameter-Objekt. Die Variablen des Objektes werden mit Standardwerten initialisiert und ausschließlich die benötigten Werte werden verändert.

Das bietet sich dann an, wenn verschiedenste Parameterkombinationen verwendet werden und diese nicht durch - Veränderung der - Reihenfolge eine eindeutige Signatur ergeben können.

Problem der varargs ist, dass du dich entweder von der Reihenfolge der Parameter abhängig machst. Oder aber ein Konstrukt der Form:

["bezeichnung", Wert]*

erschaffen musst.

...zur Antwort

Wenn du auf die 60k Objekten einen direkt Zugriff (per Name oder ID, die nicht durchgehend von 0-59999 geht) brauchst, wäre auch eine HashMap möglich. Mit der könntest du dann mittels map.get(Object ident) dir direkt das Objekt geben lassen.

Nur noch ein kleiner Hinweis. Denk daran, dass du in einem Array/Hash nur gleichförmige Objekte speichern kannst. Es ist zwar möglich alles auf Object abzubilden, erfordert jedoch bei der späteren Bearbeitung ständig Casts. In diesem Fall kann(!) es günster sein für die Untertypen einzelne Arrays oder Hashs anzulegen.

...zur Antwort

Moin! Ich empfehle dir dafür ein CMS (Typo3, Contenido). Die bauen meistens auch auf MySql auf. Zum Thema PHP entweder lernst du es oder suchst dir jemanden, der die Seite erstellt. Daten gehören in Tabellen. Design Elemente sollten wiederum in <div>s verpackt werden. Anm.: Dann läßt sich mit PhP eine regelmäßig aufgebaute Textdatei sehr wohl ohne größere Probleme direkt in die DB übertragen.

...zur Antwort