Как вы можете объяснить очень хорошо, новичок, значение String args[]
и использование static
в следующем отрывке?
class FirstApp {
public static void main(String[] args) {
...
}
}
Как вы можете объяснить очень хорошо, новичок, значение String args[]
и использование static
в следующем отрывке?
class FirstApp {
public static void main(String[] args) {
...
}
}
Я бы указал новичку на статью Wiki на главную функцию, а затем добавьте ее в это.
Java запускает только программу с определенной подписью public static void main(String[] args)
, и можно думать о подписи, например, о своем собственном имени - как Java может отличить друг от друга main()
и единственную true main()
.
String[] args
- это набор String
s, разделенный пробелом, который может быть введен в программу на терминале. Больше времени, чем нет, новичок не собирается использовать эту переменную, но он всегда присутствует на всякий случай.
Я разбился бы
public static void main(String args[])
по частям:
public
Это означает, что вы можете вызывать этот метод вне класса, в котором вы сейчас находитесь. Это необходимо, потому что этот метод вызывается системой времени выполнения Java, которая не находится в вашем текущем классе.
static
Когда JVM делает вызов основного метода, для вызываемого класса нет объекта, поэтому он должен иметь статический метод, чтобы разрешить вызов из класса.
void
Java - это независимый от платформы язык, и если он вернет некоторое значение, тогда значение может означать разные вещи для разных платформ. Также есть другие способы выхода из программы на многопоточную систему. Подробное объяснение.
main
Это просто имя метода. Это имя является фиксированным и как оно вызывается JVM как точкой входа для приложения.
String args[]
Это аргументы типа String, которые ваше приложение Java принимает при запуске.
public static void main(string [] args)
public
- означает средство спецификатора доступа из любого места, где мы можем получить к нему доступ;
static
-access-модификатор означает, что мы можем вызвать этот метод напрямую, используя имя класса, не создавая его;
void
- его тип возврата;
main
- имя метода
string [] args
- он принимает только строковый тип аргумента..и хранит его в массиве строк
public
: это спецификатор доступа, который означает, что он будет доступен публично.static
: это модификатор доступа, который означает, что при загрузке java-программы он автоматически создаст пространство в памяти.void
: это тип возврата, то есть он не возвращает никакого значения.main()
: это метод или имя функции.string args[]
: его аргумент командной строки - это набор переменных в строковом формате.Если бы я объяснял это кому-то, я бы сказал, что мы доберемся до него позже, вам нужно знать, что способ запуска вашей программы - использовать:
public static void main(String[] args) {
...
}
Предполагая, что он/она знает, что такое массив, я бы сказал, что аргументы являются массивом аргументов, и вы можете показать интересные примеры.
Затем, после того как вы немного поделились с Java/JVM и этим материалом, вы также получили бы модификаторы со статическими и общедоступными.
Затем вы можете потратить некоторое время на разговор о значении этих ИМХО.
Можно упомянуть и другие "классные" вещи, такие как varargs, которые вы можете использовать в более поздних версиях Java.
public static void main(String ...args) {
//...
}
Чтобы поддерживать отношение начинающих, вы можете объяснить, что вся командная строка автоматически разделяется на массив fo String (String[]
).
Для static
вам нужно объяснить, что это не поле, подобное другому: оно уникально в JVM, даже если у вас есть тысячи экземпляров класса
Итак, main
является статическим, потому что это единственный способ его найти (связанный в своем классе) в jar
.
... после просмотра кода, и ваша работа начнется...
Обычное использование static - это доступ к функции напрямую без какого-либо создания объекта. То же, что и в java main, мы не могли бы создать какой-либо объект для этого класса для вызова основного метода. Он будет выполняться автоматически. Если мы хотим выполнить вручную, мы можем вызвать с помощью main() внутри класса и ClassName.main извне класса.
Я просто подумал, что я зацепился за это. Это были хорошие ответы другим.
Полное объявление основного метода должно быть:
public static void main(final String[] args) throws Exception {
}
Арги объявляются окончательными, потому что технически они не должны быть изменены. Это параметры консоли, заданные пользователем.
Обычно вы должны указывать, что main выбрасывает Exception, чтобы трассировки стека могли быть эхом переданы на консоль легко, без необходимости делать e.printStackTrace() и т.д.
Как для синтаксиса массива. Я предпочитаю это так. Я полагаю, что это немного похоже на разницу между французским и английским. По-английски это "черный автомобиль", на французском он "автомобиль черный". Какое важное существительное, автомобиль или черный?
Мне не нравятся такие вещи:
String blah[] = {};
Важно то, что это массив String, поэтому он должен быть
String[] blah = {};
blah - это просто имя. Я лично считаю, что это ошибка на Java, поэтому массивы иногда могут быть объявлены таким образом.
когда вы запускаете приложение из консоли, вы делаете свой java -jar (имя файла) (args), поэтому, если вы должны запускать программу, которая читает из файла, который вы делаете
Если ваша программа была вызвана readFile, после того, как вы сделали исполняемую версию (я бы не стал объяснять, как это сделать), вам нужно выполнить программу.
java -jar readFile.jar C:/user/Matt/documents/myText.txt
^ launch program ^ args
расположение файла будет args [] для программы.