Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe gerade erst mit JAVA angefangen und habe direkt mal ne Frage oder eher 2
Ich habe gerade ein objekt-orientiertes HelloWorld geschrieben (ja lacht ihr nur):
Code:
public class HelloText
{
public String MessageText = "Hello World!";
public void printText()
{
System.out.println(MessageText);
}
}
public class Main
{
public static void main (String[] args)
{
HelloText h1 = new HelloText();
h1.printText();
}
}
Beim kompilieren/ausführen kriege ich die Meldung, dass die Klasse HelloText in einem eigenen File sein soll...
Nun zu den Fragen:
- Muss ich somit also jede öffentliche Klasse in einer eignen Source-Datei abspeichern?
- Gehe ich richtig in der Annahme, dass ich Methoden der Klasse HelloText in der Mainklasse nur benutzen kann, wenn die Klasse HelloText public ist?
- Was passiert wenn ich die public oder private Deklaration bei der Klasse HelloText weglasse? Dann funktioniert das Kompilieren zwar, aber was geschieht da im Hintergrund?
ja, das ist so vorgesehen. Ist auch durchaus sinnvoll, wenn die Klassen größer werden.
ReatKay hat gesagt.:
- Gehe ich richtig in der Annahme, dass ich Methoden der Klasse HelloText in der Mainklasse nur benutzen kann, wenn die Klasse HelloText public ist?
Zum Teil. Die Klasse muss public sein, das ist Voraussetzung. Zusätzlich müssen aber natürlich auch die Methoden, die du besitzen willst, als public deklariert sein.
Sofern sich die Klasse im selben Package befindet, sieht die Sache ien wenig anders aus, aber das ist für den Anfänger noch nicht so wichtig (denke ich).
ReatKay hat gesagt.:
- Was passiert wenn ich die public oder private Deklaration bei der Klasse HelloText weglasse? Dann funktioniert das Kompilieren zwar, aber was geschieht da im Hintergrund?
Für Methoden:
Der Standard-Wert wenn nichts anderes (public, protected, private) angegeben wird ist die sog. Package Visibility oder auch Friendly Visibility, d.h. Sichtbarkeit im gleichen Package und Unsichtbarkeit von außerhalb des Packages.
Für Methoden:
Der Standard-Wert wenn nichts anderes (public, protected, private) angegeben wird ist die sog. Package Visibility oder auch Friendly Visibility, d.h. Sichtbarkeit im gleichen Package und Unsichtbarkeit von außerhalb des Packages.
@ Felix: Danke für deine Antworten, hilft mir sehr weiter
@ Alle andren: Viele Antworten, konnte einiges draus ziehen, nur verwirrt ihr mich neuling mit etwas neuem: "Package Visibility"?
Wenn ich also mehrere Klassen in einer Source-Datei schreibe, sind die dann automatisch im gleichen Package? Heisst das, wenn ich mehrere Klassen schreibe in einer Source-Datei und denen nicht sage ob sie Private oder Public sind, kann ich von einer jeweils auf die Methoden der anderen zugreifen?