vram78
Lieutenant
- Registriert
- Dez. 2015
- Beiträge
- 717
Hallo,
Es geht konkret um die Programmiersprache Java.
Ich habe diesbezüglich 3 Fragen.
Ich lese mich derzeit in ,,Java ist auch eine Insel" ein.
Dort steht folgendes:
Mir geht es erstmal konkret um diesen Satz hier:
Genau das ist mein Problem mit der Objektorientierung. Es ist ja alles schön und gut, wenn es bereits Lösungen für Probleme gibt. beispielsweise ist die println() Methode eine Lösung dafür, wie ich etwas in der Konsole ausgebe. Ich muss dank der Objektorientierung keinen Code diesbezüglich schreiben, wenn ich etwas ausgeben möchte. Dafür hat es bereits jemand anderes getan.
Allerdings weiß ich gar nicht, wie die println() Methode denn nun funktioniert. Und als Anfänger möchte ich nun mal wissen, was im Methodenrumpf von println() steht. Kann man dies als mögliche Schwäche des Programmierparadigmas verstehen?
Meine 2. Frage:
Ich verstehe immer noch nicht ganz, wozu man
verwendet.
In ,,Java ist auch eine Insel" steht folgendes dazu:
Aber was bringt mir denn jetzt eine Methode, die statisch ist? Was ist der Vorteil darin, eine Methode als statisch zu deklarieren? Wieso denn nicht einfach ein Objekt dazu erzeugen?
Beispiel:
Hier habe ich eine nicht statische Methode, eine Objektmethode. Ich könnte es aber genau so gut folgendermaßen ausführen:
Ich verstehe aber den Sinn dahinter überhaupt nicht. Außer, dass man weniger schreiben muss..
Meine 3. Frage:
Hier wird ein Objekt ,,scanner" vom Typ ,,Scanner" erzeugt. Ich verstehe aber nicht, was System.in nun zu bedeuten hat. Was bedeutet System.in? Bedeutet es etwa, dass Objekte miteinander quasi kommunizieren können und ich das Objekt ,,in" mit dem Objekt ,,scanner" sozusagen verbinde? Ich verstehe es nicht ganz.
MFG
Es geht konkret um die Programmiersprache Java.
Ich habe diesbezüglich 3 Fragen.
Ich lese mich derzeit in ,,Java ist auch eine Insel" ein.
Dort steht folgendes:
Da eine Methode immer einer Klasse oder einem Objekt zugeordnet ist, muss der Eigentümer beim Aufruf angegeben werden. Im Fall von System.out.println() ist println() eine Methode vom out-Objekt. Wenn wir das Maximum zweier Fließkommazahlen mit Math.max(a, b) bilden, dann ist max(...) eine (statische) Methode der Klasse Math. Für den Aufrufer ist damit immer ersichtlich, wer diese Methode anbietet, also auch, wer diese Nachricht entgegennimmt. Was der Aufrufer nicht sieht, ist die Arbeitsweise der Methode. Der Methodenaufruf verzweigt in den Programmcode, aber der Aufrufer weiß nicht, was dort geschieht. Er betrachtet nur das Ergebnis.
Mir geht es erstmal konkret um diesen Satz hier:
Was der Aufrufer nicht sieht, ist die Arbeitsweise der Methode. Der Methodenaufruf verzweigt in den Programmcode, aber der Aufrufer weiß nicht, was dort geschieht. Er betrachtet nur das Ergebnis.
Genau das ist mein Problem mit der Objektorientierung. Es ist ja alles schön und gut, wenn es bereits Lösungen für Probleme gibt. beispielsweise ist die println() Methode eine Lösung dafür, wie ich etwas in der Konsole ausgebe. Ich muss dank der Objektorientierung keinen Code diesbezüglich schreiben, wenn ich etwas ausgeben möchte. Dafür hat es bereits jemand anderes getan.
Allerdings weiß ich gar nicht, wie die println() Methode denn nun funktioniert. Und als Anfänger möchte ich nun mal wissen, was im Methodenrumpf von println() steht. Kann man dies als mögliche Schwäche des Programmierparadigmas verstehen?
Meine 2. Frage:
Ich verstehe immer noch nicht ganz, wozu man
Java:
static
In ,,Java ist auch eine Insel" steht folgendes dazu:
Das Schlüsselwort static zeigt an, dass sich die Methode mit dem Klassennamen nutzen lässt, also kein Exemplar eines Objekts nötig ist.
Aber was bringt mir denn jetzt eine Methode, die statisch ist? Was ist der Vorteil darin, eine Methode als statisch zu deklarieren? Wieso denn nicht einfach ein Objekt dazu erzeugen?
Beispiel:
Java:
public class Rücklauf {
public static void main(String[] args) {
Rücklauf test = new Rücklauf();
test.Konsole();
}
public void Konsole() {
int i = 499;
while(!(i == 1)) {
if(i == 600) {
}
if(i == 1000) {
break;
}
i++;
System.out.println(i);
}
}
}
Hier habe ich eine nicht statische Methode, eine Objektmethode. Ich könnte es aber genau so gut folgendermaßen ausführen:
Java:
public class Rücklauf {
public static void main(String[] args) {
Konsole();
}
public static void Konsole() {
int i = 499;
while(!(i == 1)) {
if(i == 600) {
}
if(i == 1000) {
break;
}
i++;
System.out.println(i);
}
}
}
Ich verstehe aber den Sinn dahinter überhaupt nicht. Außer, dass man weniger schreiben muss..
Meine 3. Frage:
Java:
Scanner scanner = new Scanner(System.in);
Hier wird ein Objekt ,,scanner" vom Typ ,,Scanner" erzeugt. Ich verstehe aber nicht, was System.in nun zu bedeuten hat. Was bedeutet System.in? Bedeutet es etwa, dass Objekte miteinander quasi kommunizieren können und ich das Objekt ,,in" mit dem Objekt ,,scanner" sozusagen verbinde? Ich verstehe es nicht ganz.
MFG