Odpowiedzi:
To trzy zupełnie różne rzeczy:
public
oznacza, że metoda jest widoczna i można ją wywołać z innych obiektów innego typu. Inne alternatywy są private
, protected
, package
i package-private
. Więcej informacji znajdziesz tutaj .
static
oznacza, że metoda jest skojarzona z klasą, a nie z konkretną instancją (obiektem) tej klasy. Oznacza to, że możesz wywołać metodę statyczną bez tworzenia obiektu tej klasy.
void
oznacza, że metoda nie zwraca wartości. Gdyby metoda zwróciła wartość int
, int
zamiast void
.
Połączenie wszystkich trzech z nich jest najczęściej widoczne w main
metodzie, którą obejmuje większość samouczków.
Te trzy słowa mają ortogonalne znaczenie.
public
oznacza, że metoda będzie widoczna z klas w innych pakietach.
static
oznacza, że metoda nie jest dołączona do konkretnej instancji i nie ma " this
". Jest to mniej więcej funkcja.
void
jest typem zwrotu. To znaczy „ta metoda nic nie zwraca”.
Publicznego kluczowe jest specyfikator dostępu, który pozwala programiście kontrolować widoczność członków klasy. Gdy element członkowski klasy jest poprzedzony przez public, wówczas można uzyskać do niego dostęp za pomocą kodu poza klasą, w której jest zadeklarowany. (Przeciwieństwem public to private, co zapobiega używaniu elementu członkowskiego przez kod zdefiniowany poza jego klasą).
W tym przypadku main( )
musi być zadeklarowany jako publiczny, ponieważ musi być wywoływany przez kod poza swoją klasą podczas uruchamiania programu.
Słowo kluczowe static pozwala main( )
na wywołanie bez konieczności tworzenia instancji konkretnej instancji klasy. Jest to konieczne, ponieważ main( )
jest wywoływane przez interpreter języka Java przed utworzeniem jakichkolwiek obiektów.
Słowo kluczowe void po prostu mówi kompilatorowi, że main( )
nie zwraca wartości. Jak zobaczysz, metody mogą również zwracać wartości.
To znaczy, że:
public
- można go wywołać z dowolnego miejscastatic
- nie ma żadnego stanu obiektu, więc możesz go wywołać bez tworzenia wystąpienia obiektuvoid
- nic nie zwracaMożna by pomyśleć, że brak zwrotu oznacza, że niewiele robi, ale może to na przykład zapisywać rzeczy w bazie danych.
To oznacza trzy rzeczy.
Po pierwsze public
oznacza, że każdy inny obiekt może uzyskać do niego dostęp.
static
oznacza, że klasa, w której się znajduje, nie musi być najpierw tworzona przed wywołaniem funkcji.
void
oznacza, że funkcja nie zwraca wartości.
Ponieważ dopiero się uczysz, nie przejmuj się zbytnio pierwszymi dwoma, dopóki nie nauczysz się zajęć, a trzeci nie będzie miał większego znaczenia, dopóki nie zaczniesz pisać funkcji (innych niż main).
Najlepsza rada, jaką otrzymałem podczas nauki programowania i którą ci przekazuję, to nie przejmuj się drobnymi szczegółami, których nie rozumiesz od razu. Uzyskaj szeroki przegląd podstaw, a następnie wróć i martw się o szczegóły. Powodem jest to, że musisz użyć pewnych rzeczy (takich jak public static void
) w swoich pierwszych programach, których tak naprawdę nie można dobrze wyjaśnić bez uprzedniego nauczenia cię o wielu innych rzeczach. Więc na razie zaakceptuj, że tak to się robi i idź dalej. Wkrótce je zrozumiesz.
Biorąc pod uwagę typową klasę na najwyższym poziomie. Na najwyższym poziomie można używać tylko publicznych i nie modyfikujących modyfikatorów dostępu, więc zobaczysz publiczne lub w ogóle nie zobaczysz żadnego modyfikatora dostępu.
`` static '' jest używane, ponieważ możesz nie mieć potrzeby tworzenia rzeczywistego obiektu na najwyższym poziomie (ale czasami będziesz chciał, więc nie zawsze możesz zobaczyć / użyć statycznego. Są inne powody, dla których nie uwzględnisz statycznego też, ale jest to typowe na najwyższym poziomie).
void
jest używany, ponieważ zwykle nie będziesz zwracać wartości z najwyższego poziomu (klasy). (czasami będziesz chciał zwrócić wartość inną niż NULL
tak void może nie zawsze być używana, szczególnie w przypadku, gdy zadeklarowałeś, zainicjowałeś obiekt na najwyższym poziomie, któremu przypisujesz jakąś wartość).
Zastrzeżenie: sam jestem nowicjuszem, więc jeśli ta odpowiedź jest w jakikolwiek sposób błędna, nie wieszaj mnie. Za dnia jestem rekruterem technicznym, a nie programistą; kodowanie to moje hobby. Zawsze jestem otwarty na konstruktywną krytykę i uwielbiam się uczyć, więc nie krępuj się wskazywać na wszelkie błędy.
public
oznacza, że możesz uzyskać dostęp do klasy z dowolnego miejsca w klasie / obiekcie lub poza pakietem lub klasąstatic
oznacza stałą, w której blok instrukcji został użyty tylko 1 razvoid
oznacza brak typu zwracanegoPublic
- oznacza, że klasa (program) jest dostępna do użytku przez każdą inną klasę.
Static
- tworzy klasę. Można również zastosować do zmiennych i metod, czyniąc je klasowymi metodami / zmiennymi zamiast tylko lokalnymi dla określonej instancji klasy.
Void
- oznacza to, że żaden produkt nie jest zwracany, gdy klasa zakończy przetwarzanie. Porównaj to z klasami pomocniczymi, które dostarczają wartość zwracaną do klasy głównej, te działają jak funkcje; nie są one nieważne w deklaracji.
static
oznacza, że metoda jest skojarzona z klasą, a nie z konkretną instancją (obiektem) tej klasy. Oznacza to, że możesz wywołać metodę statyczną bez tworzenia obiektu tej klasy. Ponieważ użycie static
słowa kluczowego main()
jest twoją pierwszą metodą, która ma zostać wywołana ...
static
nie potrzebuje żadnego obiektu do instancji ... więc main( )
jest wywoływana przez interpreter Java przed utworzeniem jakichkolwiek obiektów.
public
,static
,private
, etc.), następnie typu zwrotny (void
w tym przypadku).