Hallo miteinander!
Ich bin blutiger JAVA-Anfänger (seit ungefähr 10 min.) und schon kommen die ersten Probleme. Der Beispielcode ist 1:1 aus einem Lehrbuch abgetippt, aber irgendwie kommt bei "private String text;" immer ein Fehler, der dann auch in Folgefehlern ausartet:
Code:
public class Einfuehrung02 {
public static void main(String[] args) {
private String text; // Objektreferenz erzeugen
text = new String("Hallo "); // Objekt im Speicher anlegen
text = text.concat("Welt"); // Nachricht senden
System.out.println(text); // Nachricht senden
}
}
Weiß da jemand rat? Das einzige, was mir einfallen würde, ist, dass das Buch für Java5 geschrieben wurde, ich aber 6 benutze...
private ist innerhalb von Methoden unsinnig, weil es den Zugriff auf Objekteigenschaften oder Objektmethoden regelt. Eine Variable, welche innerhalb einer Methode angelegt wird, kann keine Objekteigenschaft sein und daher auch nicht private oder public...
Die Kommentare zu dem Programm sind ... etwas merkwürdig... ("Nachricht"???). Was ist das denn für ein Buch?
However. Die Objektreferenz "text" wird innerhalb der main-Methode erzeugt. Das kann man machen. (Sollte man nicht, aber für eine Einführung ist es OK). Dann macht das Wort "private" aber keinen Sinn. "private" heißt, dass NUR die Klasse darauf zugreifen kann, zu der die Objektreferenz gehört. Wenn die Objektreferenz in der main erzeugt wird, gehört sie aber zu KEINER Klasse.
In diesem Fall sollte es funktionieren, wenn du das "private" wegläßt.
Gut, vielen Dank für die wirklich sehr schnellen Antworten.
Tragisch finde ich nur, dass so ein Fehler direkt auf Seite 16 im Buch ist (So, jetzt will ich, dass es alle wissen: "Programmieren lernen mit JAVA" vom Vieweg Verlag )...
Nichtsdestotrotz... ohne "private" funktioniert alles wie gewollt.
Daraus schließe ich einfach mal, dass in das "Programm" noch etwas wie
Code:
str = new String("Das Buch ist einfach nur schlecht!");
rein muss... :x
So, entschuldigt bitte den Doppelpost (bin leider [noch] Gast und kann daher meine Beiträge nicht editieren), aber das musste ich noch eben loswerden...
In welchem Kontext steht dieses Beispiel? Vielleicht soll es gerade Demonstrieren, dass Variablen erst initialisiert werden müssen, um darauf zuzugreifen? Ansonsten macht dieses Beispiel ja absolut 0 Sinn ^^