Vergleich zwischen Math.random() und System.out.println(): Warum wird bei math.random() keine Klasse angegeben?

vram78

Lieutenant
Registriert
Dez. 2015
Beiträge
712
Hallo,

System.out.println() ist ja so, dass out das Objekt und println() die Methode der Klasse System sind.

Aber bei Math.random() sehe ich nur die Methode random() und das Objekt Math. Wieso kann man die Klasse einfach weglassen? Ich dachte man muss immer die Klasse mit angeben.
 
Die Funktion muss doch importiert werden, ist nicht "lang" dann die Klasse bzw. darin enthalten?
 
Das ist der package Name. Kann man sich als ordnerstruktur vorstellen.
Ordner Java, unterordnen lang, class math
 
Hm, sieht nach Java aus (für die Theorie dahinter nicht so wichtig, aber fürs konkrete Beispiel)

System ist eine Klasse, out ist ein statischer Member dieser Klasse und dieses Objekt hat die Methode println()
Math ist eine Klasse und hat die statische Methode random()

Allgemein muss man unterscheiden zwischen Statischen Membern und Methoden und Instanz-Membern und Methoden. Und dann kann man noch so verkettete Beispiele wie bei System.out.println() aufbauen.

@Fujiyama : nein, Math ist die Klasse, das davor ist der Namespace (oder Package... hab schon lang kein Java mehr angefasst)
 
  • Gefällt mir
Reaktionen: abcddcba, mental.dIseASe, Bonanca und 2 andere
Wenn du nach "Java Insel" googelst und das "Rheinwerk-Computing"-Ergebnis von vorne bis hinten durcharbeitest, sollten eigentlich diese und viele weitere Fragen beantwortet werden.
 
Jesterfox schrieb:
System ist eine Klasse, out ist ein statischer Member dieser Klasse und dieses Objekt hat die Methode println()
Math ist eine Klasse und hat die statische Methode random()
so und nicht anders ist es richtig erklaert!

Man kann sich uebrigens auch mal die Meuhe machen und den Quellcode von Java ansehen - ja, ist Open Source. Dann sieht man sofort was out in der Klasse System ist. Oder man nutzt Javadoc. So viele Moeglichkeiten
 
Zurück
Oben