Zaczynam pisać programy w Javie. Co oznacza następujący kod Java?
public static void main(String[] args)
Co to jest
String[] args
?Kiedy ich użyjesz
args
?
Kod źródłowy i / lub przykłady są lepsze niż abstrakcyjne wyjaśnienia
java
parameters
command-line-arguments
main
freddiefujiwara
źródło
źródło
args
niekoniecznie musi być nazwaneargs
(możesz nazwać to, co chcesz) - chociaż najlepiej postępować zgodnie z konwencją.String... args
Od czasu do czasu możesz także zobaczyć , co jest równoważne.args
gwarantowane jest oddzielenie spacją niezależnie od systemu operacyjnego?-version
na przykład tojava -version
ijava.exe -version
, ale niejava.exe /version
(próby załadowania klasy głównej.version
). Tylko moje 2 centy, jeśli ktoś kiedykolwiek się na to natknie.Są to argumenty wiersza poleceń w Javie.
Innymi słowy, jeśli biegniesz
Następnie
args
zawiera:[ "jeden dwa" ]
Powodem tego jest skonfigurowanie aplikacji do działania w określony sposób lub dostarczenie potrzebnych informacji.
Jeśli dopiero zaczynasz korzystać z Javy, zdecydowanie polecam przeczytanie oficjalnych samouczków Java TM firmy Oracle .
źródło
args
zawiera argumenty wiersza polecenia przekazywane do programu Java po wywołaniu. Na przykład, jeśli wywołam program w ten sposób:Wtedy
args
będzie tablica zawierająca ciągi"-f"
i"file.txt"
.źródło
javac MyProg.java
a następnie uruchomićjava MyProg -f file.txt
. Czy jest ku temu powód, ponieważ nigdzie nie wspomniano w odpowiedziach?.class
pliku.Poniższa odpowiedź jest oparta na moim zrozumieniu i pewnym teście.
Co to są argumenty String []?
Ans->
String [] -> Jak wiemy, jest to prosta tablica String.
args -> to nazwa tablicy może być dowolna (np. a, ar, argument, parametr, parametr) bez problemów z kompilatorem i uruchomionym, a także przetestowałem.
Np.
1) public static void main (String [] argument)
2) public static void main (parametr String [])
Kiedy użyjesz tych argumentów?
Ans->
Główna funkcja została zaprojektowana bardzo inteligentnie przez programistów. Rzeczywiste myślenie jest bardzo głębokie. Który jest zasadniczo opracowany z uwzględnieniem C & C ++ na podstawie argumentu wiersza poleceń, ale obecnie nikt go nie używa.
Rzecz 1 - Użytkownik może wprowadzić dowolny typ danych z wiersza polecenia może być Liczba lub Ciąg i niezbędne do zaakceptowania go przez kompilator, jakiego typu danych powinniśmy użyć? zobacz rzecz 2
Thing 2- String to typ danych, który obsługuje wszystkie pierwotne typy danych, takie jak int, long, float, double, byte, shot, char w Java. Możesz go łatwo przeanalizować w dowolnym prymitywnym typie danych.
Np . Następujący program jest skompilowany i uruchomiony, a ja również przetestowałem.
Jeśli dane wejściowe to -> 1 1
źródło
Nawet jeśli OP mówi tylko o
String[] args
, chcę dać pełny przykładpublic static void main(String[] args)
.Public
: jest modyfikatorem dostępu , który określa, kto może uzyskać dostęp do tej metody. Publiczny oznacza, że ta metoda będzie dostępna dla dowolnej klasy (jeśli inne klasy będą mogły uzyskać dostęp do tej klasy).Static
: to słowo kluczowe, które identyfikuje rzecz związaną z klasą. Oznacza to, że dana metoda lub zmienna nie jest związana z instancją, ale z klasą. Można uzyskać do niego dostęp bez tworzenia instancji klasy.Void
: służy do zdefiniowania typu zwrotu metody. Określa, co metoda może zwrócić. Void oznacza, że Metoda nie zwróci żadnej wartości.main
: to nazwa metody. Ta nazwa metody jest przeszukiwana przez JVM jako punkt początkowy dla aplikacji z konkretną sygnaturą.String[] args
: jest parametrem głównej metody.Jeśli zajrzysz do kodu źródłowego JDK (jdk-src \ j2se \ src \ share \ bin \ java.c):
Widać, że metoda początkowa w Javie musi mieć nazwę
main
i musi mieć określony podpispublic static void main(String[] args)
Kod mówi nam również, że
public static void main(String[] args)
nie został naprawiony, jeśli zmienisz kod w (jdk-src \ j2se \ src \ share \ bin \ java.c) na inny podpis, będzie działał, ale jego zmiana spowoduje inne możliwe problemy z powodu specyfikacji JavaOfftopic: Minęło 7 lat, odkąd OP zadał to pytanie, domyślam się, że OP może teraz odpowiedzieć na swoje własne pytanie.
źródło
String [] args
jest także sposobem deklarowania tablicy napisów w Javie.W sygnaturze tej metody tablica
args
będzie wypełniona wartościami po wywołaniu metody (jak pokazują inne przykłady tutaj). Ponieważ się uczysz, warto zrozumieć, że taargs
tablica jest taka, jakbyś sam ją stworzył w metodzie, jak w tym:źródło
Rozpadłbym się
w częściach.
„public” oznacza, że main () można wywołać z dowolnego miejsca.
„statyczny” oznacza, że main () nie należy do określonego obiektu
„void” oznacza, że main () nie zwraca żadnej wartości
„main” to nazwa funkcji. main () jest wyjątkowy, ponieważ jest początkiem programu.
„Ciąg []” oznacza tablicę Ciąg.
„args” to nazwa ciągu [] (w treści main ()). „args” nie jest wyjątkowy; możesz to nazwać cokolwiek innego, a program będzie działał tak samo.
String[] args
jest zbiorem ciągów znaków, oddzielonych spacją, które można wpisać w programie na terminalu. Więcej niż nie, początkujący nie będzie używał tej zmiennej, ale zawsze jest na wszelki wypadek.źródło
Po zakończeniu kodu zamienisz go w plik z rozszerzeniem .java, który można uruchomić, klikając go dwukrotnie, ale także w konsoli (terminal na komputerze Mac, cmd.exe w systemie Windows), co pozwala użytkownikowi to zrobić wiele rzeczy. Jedną rzeczą jest to, że widzą komunikaty konsoli (System.out.print lub System.out.println), których nie widzą po dwukrotnym kliknięciu. Inną rzeczą, jaką mogą zrobić, jest określenie parametrów, więc normalnie użyłbyś linii
po przejściu do folderu programu za pomocą
w systemie Windows lub
na Macu (zauważ, że Mac jest mniej niezręczny), aby uruchomić kod, ale aby określić parametry, których chcesz użyć
Te parametry przechowywane w tablicy args, których można użyć w programie, pozwalają użytkownikowi kontrolować parametry specjalne, takie jak używany plik lub ilość pamięci, jaką program może mieć. Jeśli chcesz wiedzieć, jak korzystać z tablicy, prawdopodobnie możesz znaleźć temat na tej stronie lub po prostu google. Pamiętaj, że można użyć dowolnej liczby parametrów.
źródło
Wyjaśnienie w prostym języku laika.
Główna metoda oczekuje od nas podania pewnych argumentów, gdy kierujemy naszą maszynę JVM do nazwy klasy. Oznacza to, że załóżmy, że twoja nazwa pliku to Try.java, teraz aby wykonać to w wierszu polecenia, napisz „javac Try.java” do skompilowania, a następnie „java Try” do wykonania. Załóżmy teraz, że zamiast pisać po prostu „java Spróbuj” piszesz „java Spróbuj 1”. Podałeś tutaj argument „1”. Zostanie to zrobione przez twoją główną metodę, nawet jeśli nie użyjesz jej w kodzie.
Jeśli chcesz sprawdzić, czy Twoja główna metoda rzeczywiście wzięła argument „1”, czy nie. Po prostu w głównej metodzie wpisz:
źródło
Myślę, że jest dość dobrze uwzględniony w powyższych odpowiedziach, które
String args[]
są po prostu tablicą argumentów łańcuchowych, które można przekazać aplikacji podczas jej uruchamiania. Na zakończenie mogę dodać, że poprawne jest również zdefiniowanie parametru metody przekazywanego domain
metody jako argument zmiennej (varargs) typu String:public static void main (String... args)
Innymi słowy,
main
metoda musi zaakceptować tablicę String (String args[]
) lub varargs (String... args
) jako argument metody. Nie ma też magii z tym imieniemargs
. Równie dobrze możesz pisać,arguments
a nawetfreddiefujiwara
jak pokazano poniżej, np .:public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
źródło
Kiedy klasa Java jest wykonywana z konsoli, wywoływana jest główna metoda. Aby tak się stało, definicja tej głównej metody musi być następująca
Fakt, że ta tablica ciągów nazywana jest args, jest standardową konwencją, ale nie jest ściśle wymagany. Wypełniasz tę tablicę w wierszu poleceń, gdy wywołujesz swój program
Są one powszechnie używane do definiowania opcji programu, na przykład plików do zapisu lub odczytu.
źródło
w public static void main (String args []) args to tablica argumentów linii konsoli, których typ danych to String. w tej tablicy można przechowywać różne argumenty łańcuchowe, wywołując je w wierszu poleceń, jak pokazano poniżej: java myProgram Shaan Royal, a następnie Shaan i Royal będą przechowywane w tablicy jako arg [0] = "Shaan"; arg [1] = „Royal”; możesz to zrobić ręcznie również w programie, gdy nie wywołujesz ich w wierszu poleceń.
źródło
Styl
dataType[] arrayRefVar
jest preferowany. StyldataType arrayRefVar[]
pochodzi z języka C / C ++ i został przyjęty w Javie, aby pomieścić programistów C / C ++.źródło
Ten
String[] args
parametr to tablica ciągów znaków przekazywanych jako parametry podczas uruchamiania aplikacji za pomocą wiersza polecenia w systemie operacyjnym.Wyobraź sobie, że skompilowałeś i spakowałeś
myApp.jar
aplikację Java. Możesz oczywiście uruchomić aplikację, klikając ją dwukrotnie w systemie operacyjnym, ale możesz też uruchomić ją za pomocą wiersza poleceń, na przykład (na przykład w systemie Linux):Gdy wywołujesz aplikację, przekazując niektóre parametry, takie jak:
java -jar
Polecenia minie strunyupdate
inotify
do swojejpublic static void main()
metody.Następnie możesz zrobić coś takiego:
źródło
Oprócz wszystkich poprzednich komentarzy.
można zapisać jako
lub
źródło