Wyjaśnienie 'String args []' i static w 'public static void main (String [] args)' [duplikat]

to pytanie ma już odpowiedzi tutaj : Co to jest " String args []"? parametr w głównej metodzie Java (17 odpowiedzi) Zamknięty 5 lat temu .

Jak możesz bardzo dobrze wyjaśnić początkującemu znaczenie i użycie static w poniższym fragmencie?

class FirstApp {
    public static void main(String[] args) {
        ...
    }
}
 50
Author: Jamal, 2012-08-14

8 answers

Skierowałbym początkującego do artykułu Wiki na temat głównej funkcji , a następnie uzupełniłbym go o to.

  • Java zaczyna uruchamiać program tylko z określonym podpisem public static void main(String[] args) i można myśleć o podpisie jak o własnej nazwie - w ten sposób Java może odróżnić czyjąś main() od jedynej prawdziwej main().

  • String[] args jest zbiorem String s, oddzielonym spacją, którą można wpisać do programu na terminalu. Więcej razy niż nie, początkujący nie będzie używać tej zmiennej, ale to zawsze tam na wszelki wypadek.

 34
Author: Makoto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-02 14:32:10

I would break up

public static void main(String args[])

W częściach:

public

Oznacza to, że możesz wywołać tę metodę spoza klasy, w której aktualnie się znajdujesz. Jest to konieczne, ponieważ ta metoda jest wywoływana przez Java runtime system, który nie znajduje się w bieżącej klasie.


static

Gdy JVM wywołuje metodę główną, nie istnieje żaden obiekt dla wywołanej klasy, dlatego musi mieć statyczną metodę, aby umożliwić wywołanie z klasy.


void

Java jest językiem niezależnym od platformy i jeśli zwróci jakąś wartość, wartość może oznaczać różne rzeczy dla różnych platform. Istnieją również inne sposoby wyjścia z programu w systemie wielowątkowym. szczegółowe wyjaśnienie .


main

To tylko nazwa metody. Ta nazwa jest stała i jak to nazywa JVM jako punkt wejścia dla podanie.

String args[]

Są to argumenty typu String, które Aplikacja Java akceptuje podczas jej uruchamiania.

 85
Author: Confuse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
public static void main(string [] args)

public -jego specyfik dostępu oznacza z każdego miejsca, w którym możemy uzyskać do niego dostęp; static -modyfikator dostępu oznacza, że możemy wywołać tę metodę bezpośrednio używając nazwy klasy bez tworzenia jej obiektu; void - jest to typ zwracany; main - nazwa metody string [] args - przyjmuje tylko argument typu string... i przechowuje go w tablicy łańcuchowej

 14
Author: user3830480,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-26 21:30:47
  • public: jest to specyfik dostępu, który oznacza, że będzie dostępny publicznie.
  • static: jest to modyfikator dostępu, który oznacza, że po załadowaniu programu java automatycznie utworzy miejsce w pamięci.
  • void: jest to typ zwracany tzn. nie zwraca żadnej wartości.
  • main(): jest to metoda lub nazwa funkcji.
  • string args[] : argument wiersza poleceń jest zbiorem zmiennych w formacie string.
 7
Author: Aishwarya Hungund,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 14:15:12

Gdybym tłumaczył to komuś, powiedziałabym, że na razie zajmiemy się tym później. musisz wiedzieć, że sposobem na uruchomienie programu jest użycie:

public static void main(String[] args) {
        ...
    }

Zakładając, że on / ona wie, czym jest tablica, powiedziałbym, że args jest tablicą argumentów i możesz pokazać kilka fajnych przykładów.

Potem, jak już trochę o Java / JVM i tym podobnych rzeczach, można dostać się do modyfikatorów ostatecznie do statycznych i publicznych, jak również.

Wtedy możesz spędzić trochę czasu rozmawiając o znaczeniu tych IMHO.

Możesz wspomnieć o innych "fajnych" rzeczach, takich jak varargs, które możesz wykorzystać w późniejszych wersjach Javy.

public static void main(String ...args) {
        //...
    }
 3
Author: ant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-14 14:02:33

Aby zachować postawę początkującego możesz wyjaśnić, że cała linia poleceń jest automatycznie splitowana w tablicy Fo String (the String[]).

Dla static musisz wyjaśnić, że nie jest to pole jak inne : jest unikalne w JVM, nawet jeśli masz tysiąc instancji klasy

Więc {[2] } jest statyczny, ponieważ jest to jedyny sposób, aby go znaleźć (linked in its own class) w jar.

... Po spojrzeniu na kodowanie i rozpoczęciu pracy ...

 1
Author: cl-r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-14 13:09:25

Pomyślałem, że się tym zajmę. Inni jednak doskonale na to odpowiedzieli.

Pełna deklaracja metody głównej powinna brzmieć:

 public static void main(final String[] args) throws Exception {

 }

Args są uznane za ostateczne, ponieważ technicznie nie powinny być zmieniane. Są to parametry konsoli podane przez użytkownika.

Zazwyczaj należy określić wyjątek main throws, aby ślady stosu mogły być łatwo wyświetlane na konsoli bez konieczności wykonywania np. printstacktrace () itp.

Jak dla składni tablicy. I wolę tak. Przypuszczam, że to trochę jak różnica między francuskim i angielskim. Po angielsku to "czarny samochód", po francusku to "czarny samochód". Co jest ważnym rzeczownikiem, samochód, czy czarny?

Nie lubię tego typu rzeczy:

String blah[] = {};

Ważne jest to, że jest to tablica łańcuchów, więc powinna być

String[] blah = {};
Blah to tylko imię. Osobiście uważam, że w Javie jest trochę błędem, że tablice mogą być czasami deklarowane w ten sposób.
 1
Author: Richard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-11 15:04:22

Normalnym zastosowaniem statycznego jest bezpośredni dostęp do funkcji bez tworzenia jakichkolwiek obiektów. Tak samo jak w java main nie możemy utworzyć żadnego obiektu dla tej klasy, aby wywołała główną metodę. Uruchomi się automatycznie. Jeśli chcemy wykonać ręcznie możemy wywołać za pomocą main() wewnątrz klasy i ClassName.główna spoza klasy.

 0
Author: Bathakarai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-27 07:25:26