Antworten:
Es sind drei völlig verschiedene Dinge:
public
bedeutet, dass die Methode sichtbar ist und von anderen Objekten anderer Typen aufgerufen werden kann. Andere Alternativen sind private
, protected
, package
und package-private
. Sehen Sie hier für weitere Details.
static
bedeutet, dass die Methode der Klasse zugeordnet ist, nicht einer bestimmten Instanz (Objekt) dieser Klasse. Dies bedeutet, dass Sie eine statische Methode aufrufen können, ohne ein Objekt der Klasse zu erstellen.
void
bedeutet, dass die Methode keinen Rückgabewert hat. Wenn die Methode ein zurückgeben int
würde, würden Sie int
stattdessen schreiben void
.
Die Kombination aller drei ist am häufigsten bei der main
Methode zu sehen, die in den meisten Tutorials enthalten sein wird.
Die drei Wörter haben orthogonale Bedeutungen.
public
bedeutet, dass die Methode in Klassen in anderen Paketen sichtbar ist.
static
bedeutet, dass die Methode nicht an eine bestimmte Instanz angehängt ist und kein " this
" hat. Es ist mehr oder weniger eine Funktion.
void
ist der Rückgabetyp. Es bedeutet "diese Methode gibt nichts zurück".
Das öffentliche Schlüsselwort ist ein Zugriffsspezifizierer, mit dem der Programmierer die Sichtbarkeit von Klassenmitgliedern steuern kann. Wenn einem Klassenmitglied public vorangestellt ist, kann auf dieses Mitglied über Code außerhalb der Klasse zugegriffen werden, in der es deklariert ist. (Das Gegenteil von öffentlich ist privat, wodurch verhindert wird, dass ein Mitglied von Code verwendet wird, der außerhalb seiner Klasse definiert ist.)
In diesem Fall main( )
muss als öffentlich deklariert werden, da es beim Starten des Programms durch Code außerhalb seiner Klasse aufgerufen werden muss.
Mit dem Schlüsselwort static kann main( )
aufgerufen werden, ohne dass eine bestimmte Instanz der Klasse instanziiert werden muss. Dies ist erforderlich, da main( )
es vom Java-Interpreter aufgerufen wird, bevor Objekte erstellt werden.
Das Schlüsselwort void teilt dem Compiler lediglich mit, dass main( )
kein Wert zurückgegeben wird. Wie Sie sehen werden, können Methoden auch Werte zurückgeben.
Es bedeutet, dass:
public
- Es kann von überall aufgerufen werdenstatic
- Es hat keinen Objektstatus, sodass Sie es aufrufen können, ohne ein Objekt zu instanziierenvoid
- Es gibt nichts zurückSie würden denken, dass das Fehlen einer Rückgabe bedeutet, dass es nicht viel tut, aber es könnte zum Beispiel Dinge in der Datenbank speichern.
Es bedeutet drei Dinge.
Erstens public
bedeutet, dass jedes andere Objekt darauf zugreifen kann.
static
bedeutet, dass die Klasse, in der sie sich befindet, nicht zuerst instanziiert werden muss, bevor die Funktion aufgerufen werden kann.
void
bedeutet, dass die Funktion keinen Wert zurückgibt.
Da Sie gerade erst lernen, sorgen Sie sich nicht zu sehr um die ersten beiden, bis Sie etwas über Klassen lernen, und die dritte spielt keine große Rolle, bis Sie anfangen, Funktionen zu schreiben (außer Hauptfunktionen).
Der beste Rat, den ich beim Programmieren gelernt habe und den ich Ihnen weitergebe, ist, sich keine Sorgen um die kleinen Details zu machen, die Sie nicht sofort verstehen. Verschaffen Sie sich einen umfassenden Überblick über die Grundlagen, gehen Sie dann zurück und kümmern Sie sich um die Details. Der Grund ist, dass Sie einige Dinge (wie public static void
) in Ihren ersten Programmen verwenden müssen, die nicht wirklich gut erklärt werden können, ohne Sie zuerst über eine Reihe anderer Dinge zu unterrichten. Akzeptieren Sie für den Moment einfach, dass dies so gemacht wird, und fahren Sie fort. Sie werden sie in Kürze verstehen.
Betrachtet man die typische Spitzenklasse. Auf der obersten Ebene dürfen nur öffentliche und keine Modifikator-Zugriffsmodifikatoren verwendet werden, sodass entweder öffentlich angezeigt wird oder überhaupt kein Zugriffsmodifikator angezeigt wird.
`static`` wird verwendet, weil Sie möglicherweise kein tatsächliches Objekt auf der obersten Ebene erstellen müssen (aber manchmal möchten Sie dies, sodass Sie möglicherweise nicht immer statisch sehen / verwenden. Es gibt andere Gründe, warum Sie statisch nicht einschließen würden auch, aber dies ist das typische auf der obersten Ebene.)
void
wird verwendet, weil Sie normalerweise keinen Wert von der obersten Ebene (Klasse) zurückgeben. (Manchmal möchten Sie einen anderen als den NULL
ungültigen Wert zurückgeben , der möglicherweise nicht immer verwendet wird, insbesondere dann, wenn Sie ein Objekt auf der obersten Ebene deklariert und initialisiert haben, dem Sie einen Wert zuweisen.)
Haftungsausschluss: Ich bin selbst ein Neuling. Wenn diese Antwort in irgendeiner Weise falsch ist, hängen Sie mich bitte nicht auf. Tagsüber bin ich ein Tech-Recruiter und kein Entwickler. Codierung ist mein Hobby. Außerdem bin ich immer offen für konstruktive Kritik und lerne gerne. Bitte zögern Sie nicht, auf Fehler hinzuweisen.
public
bedeutet, dass Sie von überall in der Klasse / im Objekt oder außerhalb des Pakets oder der Klasse auf die Klasse zugreifen könnenstatic
bedeutet Konstante, in der der Anweisungsblock nur einmal verwendet wurdevoid
bedeutet kein RückgabetypPublic
- bedeutet, dass die Klasse (das Programm) für jede andere Klasse verfügbar ist.
Static
- erstellt eine Klasse. Kann auch auf Variablen und Methoden angewendet werden, sodass sie Klassenmethoden / -variablen sind und nicht nur lokal für eine bestimmte Instanz der Klasse.
Void
- Dies bedeutet, dass kein Produkt zurückgegeben wird, wenn die Klasse die Verarbeitung abgeschlossen hat. Vergleichen Sie dies mit Hilfsklassen, die einen Rückgabewert für die Hauptklasse bereitstellen. Diese funktionieren wie Funktionen. Diese sind in der Erklärung nicht ungültig.
static
bedeutet, dass die Methode der Klasse zugeordnet ist, nicht einer bestimmten Instanz (Objekt) dieser Klasse. Dies bedeutet, dass Sie eine statische Methode aufrufen können, ohne ein Objekt der Klasse zu erstellen. Wegen der Verwendung eines static
Schlüsselwortsmain()
Ihre erste Methode ist, die aufgerufen
static
wird, muss kein Objekt zur Instanz gehören. Wird daher main( )
vom Java-Interpreter aufgerufen, bevor Objekte erstellt werden.
public
,static
,private
, usw.) , dann der Rückgabetyp (void
in diesem Fall).