Public static void main string args что это значит
Зона кода
Эту статью я написал несколько лет назад для другого сайта, но она так и не была опубликована. Тогда 7-я версия Java только-только появилась на свет, а 6-я была всё ещё актуальна. Статья адресована, в первую очередь тем, кто начинает знакомиться с языком Java. Я решил стряхнуть с неё пыль и опубликовать: пусть будет!
Здравствуйте, уважаемый читатель! Эта статья состоит из двух частей.
Первая из них адресована новичкам, которые только-только приступают к изучению Java и, возможно, не написали ещё ни одной программы на этом языке.
Новичкам
Метод main() должен объявляться в классе следующим образом:
Ключевое слово public означает, что метод main() доступен везде, где доступен содержащий его класс. Ключевое слово static означает, что метод является статическим, т. е. не требует для своего вызова наличие экземпляра класса. Ключевое слово void означает, что метод не возвращает никакого значения. Все эти три слова обязательно должны присутствовать в описании метода.
Вместо имени массива args можно использовать любое другое имя. Например, следующее описание main() вполне корректно.
Сохраним код класса MainTest в файле с именем MainTest.java и скомпилируем этот файл командой
java MainTest Это всего лишь проверка!
Если нет проблем с отображением кириллицы, то в результате выполнения команды на консоль будет выведено:
Это
всего
лишь
проверка!
Метод main() может вызываться не только виртуальной машиной Java, но и любым другим методом. Например, main() может быть рекурсивным, т. е. может вызывать сам себя. В этом отношении main() ничем не отличается от остальных методов.
В следующем примере (весьма вычурном) метод main() рекурсивен. При каждом вызове метода, за исключением последнего, на печать выводится один аргумент командной строки.
Новичкам и не только
В Интернете на форумах, посвящённых Java, я нередко встречал любопытную задачку: написать класс, метод main() которого имеет пустое тело, выводящий на консоль надпись “Hello world!”. Полагаю, что эта задача известна многим из тех, кто интересуется Java.
Статический блок имеет некоторое сходство со статическим методом. Отличается он от последнего тем, что не имеет имени, не принимает параметров, не возвращает значения (а значит, не может содержать инструкции return ) и не вызывается явно. Так же как и статический метод, статический блок может содержать обращения к статическим полям и методам класса.
Статические блоки используются редко. Как правило, в их задачи входит инициализация статических полей класса.
Ну а мы поместим в статический блок инструкцию вывода на консоль строки “Hello world!”:
Можно скомпилировать класс, запустить на выполнение и удостовериться в том, что с поставленной задачей он вполне успешно справляется.
На консоль будет выведено:
Привет от static-блока!
Привет от метода main()!
Вот код, демонстрирующий данный подход:
И вот тут начинается самое интересное! Я компилировал и запускал этот класс с использованием комплектов разработки на языке Java (JDK) трёх разных версий: jdk1.6_021, jdk1.6_024 и jdk1.7.0_01. Во всех трёх случаях код компилировался без проблем. А вот с запуском класса проблемы возникали.
Для начала, оговорюсь, что каждый файл с расширением class запускался под управлением “своей” виртуальной машины Java, т. е. входящей в тот JDK, посредством которого этот файл был получен в результате компиляции.
Итак, в последних двух случаях на экран выводилась надпись:
Error: Main method not found in class WithoutMain, please define the main method as: public static void main(String[] args)
Таким образом, не выполнялся даже код, входящий в статический блок. А вот в первом случае на консоль выводилось следующее:
HelloWorld!
Exception in thread «main» java.lang.NoSuchMethodError: main
Выполнение программы приводит к следующему выводу на консоль:
public static void main(String[] args) – основной метод Java
public static void main(строковые аргументы[]), основной метод java. Точка входа в java-программу. общедоступные статические пустые аргументы основной строки, аргументы командной строки java
public static void main(String[] args) является наиболее важным методом Java. Когда вы начинаете изучать программирование на Java, это первый метод, с которым вы сталкиваетесь. Помните первую написанную вами программу Java Hello World, которая запускает и печатает “Hello World”?
общедоступная статическая пустота main(строка[] args)
Давайте внимательно рассмотрим основной метод java и попытаемся понять каждую из его частей.
общественный
статический
Когда запускается среда выполнения java, объект класса отсутствует. Вот почему основной метод должен быть статическим, чтобы JVM могла загрузить класс в память и вызвать основной метод. Если основной метод не будет статическим, JVM не сможет его вызвать, потому что в нем нет объекта класса. Давайте посмотрим, что произойдет, когда мы удалим статику из основного метода java.
пустота
Мы получаем ошибку ниже, когда вышеописанная программа компилируется.
главный
Это имя основного метода java. Это исправлено, и когда мы запускаем программу на Java, она ищет основной метод. Например, если у нас есть класс, как показано ниже.
И мы попытаемся запустить эту программу, она выдаст ошибку, что основной метод не найден.
Строка[] args
Метод Java main принимает один аргумент типа String array. Это также называется аргументами командной строки java. Давайте рассмотрим пример использования аргументов командной строки java.
Выше приведена простая программа, в которой мы печатаем аргументы командной строки. Давайте посмотрим, как передавать аргументы командной строки при выполнении вышеуказанной программы.
Аргументы командной строки основного метода Java в Eclipse
На приведенных ниже изображениях показано, как передавать аргументы командной строки при выполнении программы java в Eclipse.
Что такое «String args []»? параметр в основном методе Java
Я только начинаю писать программы на Java. Что означает следующий код Java?
Исходный код и/или примеры предпочтительнее абстрактных объяснений
ОТВЕТЫ
Ответ 1
Ответ 2
Это аргументы командной строки в Java.
Другими словами, если вы запустите
Затем args содержит:
Причина этого заключается в том, чтобы настроить приложение для запуска определенным образом или предоставить ему некоторую часть информации, которая ему нужна.
Ответ 3
args содержит аргументы командной строки, переданные программе Java при вызове. Например, если я вызываю программу следующим образом:
Ответ 4
Следующий ответ основан на моем понимании и некоторых тестах.
Что такое String [] args?
Ans- >
String [] → Как мы знаем, это простой массив String.
args → это имя массива, которое может быть чем угодно (например, a, ar, argument, param, parameter), никаких проблем с компилятором и выполненных, и я также тестировал.
например.
1) public static void main (аргумент String [])
2) public static void main (параметр String [])
Когда вы будете использовать эти аргументы?
Ans →
Основная функция разработана очень разумно разработчиками. Фактическое мышление очень глубокое. Что в основном разрабатывается при рассмотрении C и С++ на основе аргумента командной строки, но в настоящее время его больше никто не использует.
E.g Следующая программа скомпилирована и выполнена, и я также протестировал ее.
Если входной сигнал → 1 1
Ответ 5
В этой сигнатуре метода массив args будет заполнен значениями при вызове метода (как показывают другие примеры здесь). Поскольку вы изучаете, однако, стоит понять, что этот массив args похож, если вы создали его самостоятельно в методе, как в этом:
Ответ 6
«public» означает, что main() можно вызывать из любого места.
«static» означает, что main() не принадлежит к определенному объекту
«void» означает, что main() не возвращает значение
«String []» означает массив строки.
Ответ 7
после перехода к папке программы с помощью
на Mac (обратите внимание, что mac менее clunky) для запуска кода, но для указания параметров, которые вы использовали бы
Эти параметры, хранящиеся в массиве args, которые вы можете использовать в своей программе, вы хотите разрешить пользователю контролировать специальные параметры, такие как файл для использования или объем памяти, который может иметь программа. Если вы хотите знать, как использовать массив, вы, вероятно, можете найти тему на этом сайте или просто отправить ее в Google. Обратите внимание, что можно использовать любое количество параметров.
Ответ 8
Public : это модификатор доступа, который определяет, кто может получить доступ к этому методу. Public означает, что этот метод будет доступен любому классу (если другие классы могут получить доступ к этому классу.).
Static : это ключевое слово, которое идентифицирует связанную с классом вещь. Это означает, что данный метод или переменная не относится к экземпляру, а относится к классу. Доступ к нему возможен без создания экземпляра класса.
Void : используется для определения типа возврата метода. Он определяет способ возврата метода. Void означает, что метод не вернет никакого значения.
main : имя метода. Это имя метода ищет JVM в качестве отправной точки для приложения с определенной сигнатурой.
String[] args : это параметр основного метода.
Если вы посмотрите исходный код JDK (jdk-src\j2se\src\share\bin\java.c):
Вы можете видеть, что метод запуска в java должен быть назван main и должен иметь общую public static void main(String[] args)
Код также сообщает нам, что public static void main(String[] args) не является фиксированным, если вы измените код в (jdk-src\j2se\src\share\bin\java.c) на другую подпись, это будет работа, но изменение этого даст вам другие возможные проблемы из-за спецификаций java
Offtopic: Прошло 7 лет с тех пор, как OP задал этот вопрос, я думаю, что OP может ответить на его собственный вопрос.
Ответ 9
Когда класс java выполняется с консоли, основным методом является то, что вызывается. Чтобы это произошло, определение этого основного метода должно быть
Тот факт, что этот строковый массив называется args, является стандартным соглашением, но не требуется строго. Вы должны заполнить этот массив в командной строке, в которой вы запускаете свою программу
Они обычно используются для определения параметров вашей программы, например файлов для записи или чтения.
Ответ 10
Ответ 11
public static void main (String. args)
public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
Ответ 12
Объяснение в простом языке непрофессионала.
Если вы хотите проверить, действительно ли ваш основной метод принял аргумент «1» или нет. Просто внутри основного метода введите следующее:
Ответ 13
Стиль dataType[] arrayRefVar является предпочтительным. Стиль dataType arrayRefVar[] исходит из языка C/С++ и был принят на Java для размещения программистов на C/С++.
Ответ 14
Вы можете включить аргументы в свою программу, используя большинство современных IDE.
Например, в Intellij вы можете включить аргументы, выполнив:
Запустить → Изменить конфигурации. → Вкладка «Конфигурация» → «Аргументы программы»
Вы можете увидеть здесь его наиболее распространенное разделение пробелами, и если в имени есть пробелы, вы можете использовать двойные кавычки для его обертки.
Этот фрагмент будет печатать:
аргумент arg1
аргумент arg2
имя аргумента arg 3
Public static void main string args что это значит
В этой статье из моего курса Java я буду обсуждать метод public static void main (String[] args). До этого момента в серии мы запускали наш код только через фреймворк JUnit. Это здравая, методологическая практика, однако она отличается от того, как наша программа будет работать в производстве. Теперь давайте рассмотрим, как наш код будет работать вне среды разработки.
public static void main
Давайте рассмотрим каждую часть метода в деталях:
Оба кода распознаются JRE. Кроме того, одна вещь о главном методе, который вы можете найти интересным, заключается в том, что вам даже не нужно использовать массив – вы можете заменить массив параметром переменной длины:
Входной параметр, показанный здесь похож на более гибкую версию массива – если вы непосредственно вызываете этот метод, например из теста, он имеет преимущество в принятии переменного числа строковых аргументов, например main(“BMW”, “Porsche”, “Mercedes”), без необходимости создавать массив заранее. Честно говоря, я никогда не использую такой параметр для основного метода, но я думаю, что это хорошая деталь, чтобы знать и хвастаться ;-).
Это код создаст метод с именем main, но он не будет распознан как «основной» метод, и поэтому программа не сможет работать, используя этот метод в качестве отправной точки.
Давайте создадим класс calledCarSelector и добавим к нему метод main. Он выводит каждый из аргументов командной строки обратно на консоль:
С помощью основного метода мы можем выполнить этот код без использования тест для вызова, как мы делали до текущего момента.
Компиляция c помощью командной строки
Чтобы запустить нашу программу из командной строки, мы должны сначала перейти в корневую папку нашего исходного кода. В нашем случае это src/main/ java. Кроме того, это структура папок по умолчанию для “Maven», инструмента управления сборкой, который я выделил ранее, когда говорил об инструментах Java.
Для компиляции кода мы вводим:
Это создаст файл под названием CarSelector.класс в той же папке, что и CarSelector.java, и мы, наконец, можем выполнить нашу программу:
Как вы можете видеть, вызов нашего класса без каких-либо аргументов на самом деле ничего не делает. Так что давайте добавим несколько аргументов:
Ура! Мы успешно выполнили нашу собственную программу с консоли!
Запуск программы с помощью IntelliJ IDEA
Чтобы запустить нашу программу из IntelliJ IDEA, мы просто щелкаем правой кнопкой мыши метод и выбираем » Run ‘CarSelector.main’ » из контекстного меню.
Если мы изменим сигнатуру метода main(), то запустим CarSelector.команда main исчезнет из контекстного меню, так как у нас больше не будет действительной точки входа. Однако, когда мы запускаем его, ничего не печатается. Это происходит потому, что никто не передает методу main() никаких аргументов. Для этого в IDE: в меню «Run“ выберите ”edit configurations…. “, а во вкладке ”конфигурация“ добавьте разделенные пробелами строки в ” Program Parameters».
Теперь, когда мы запускаем метод main (), мы видим, что наши автомобили успешно выводятся на консоль.
Если вы закончили еще один курс Java до этого, или даже если это ваш первый курс, вы можете задаться вопросом, почему я отложил введение метода main() до этого относительно продвинутого этапа в курсе. Я сделал это по нескольким причинам. Во-первых, я считаю, что важно дать вам инструменты, чтобы полностью понять что-то, прежде чем я представлю его. Если бы вы не знали, что такое public static void, или не знали, что такое массив, было бы нечестно учить вас этому. Теперь, когда у вас есть некоторые знания обо всех этих вещах, вы можете начать полностью понимать, как работает этот метод.
Еще одна причина, по которой я решил отложить это обсуждение на столь долгое время, заключается в том, что в объектно-ориентированной разработке статические переменные и методы должны использоваться редко. Есть несколько случаев, когда вы используете статический модификатор, но я не хочу продвигать его использование в этом курсе.
Наконец, вам редко придется писать основной метод самостоятельно (если вы не будете программировать в одиночку). Для каждой программы (любого размера) существует только один основной метод, и к тому времени, когда вы присоединились к проекту, он, вероятно, уже был написан кем-то другим.
статьи IT, уроки по java, java, методы
Создание класса в java
Создавать класс мы будем в программе Ecllipse, но также можно работать в любой другой IDE или в блокноте. В качестве примера мы будем создавать класс, который описывает характеристики и поведение кота.
В итоге, у нас создался новый класс (рис 5.2).
Структура класса в java
Класс в java оформляется с помощью следующей конструкции:
Рассмотрим ее составляющие:
public – модификатор доступа к классу, в данном случае он нам говорит, что этот класс будет доступен не только данному классу, но и другим. В java существуют и другие модификаторы, но об этого поговорим позднее.
class – ключевое слово, говорящее о том, что это класс.
Cat – имя класса. Имена классов принято писать с заглавной буквы.
< >– фигурные скобки, между которыми разместится тело нашего класса.
В предыдущем уроке мы упоминали, что классы в java состоят из атрибутов и методов, присвоим некоторые и нашему коту.
Атрибуты класса Сat
Атрибутами кота могут быть: имя, вес, окраска. Атрибуты это переменные, которые объявляются следующим образом:
private – здесь опять же указывает на права доступа. К переменной, в данном случае, можно обращаться только из ее класса, чтобы классы извне не могли ее изменить (вспомним инкапсуляцию из урока 4).
int, String – это типы данных. В данном случае вес будет задан при помощи целого числа – int, a имя и цвет при помощи символьной строки String.
После объявления каждого атрибута должна ставиться точка с запятой ;
При помощи // в коде программы оформляются комментарии, которые являются правилом хорошего тона.
Методы класса Сat
Пусть наш кот умеет есть, спать и разговаривать. Опишем это поведение с помощью методов.
public void eat() – сигнатура метода, его определение. В данном случае она нам говорит о том, что:
eat – имя метода. Имена методов, в отличие от имен классов, принято писать с маленькой буквы. На конце каждого метода после имени всегда идут круглые скобки ( ), пустые или содержащие параметры (об этом позднее).
После сигнатуры метода идут фигурные скобки < >. В них содержится тело метода. Тело нашего метода содержит просто вывод сообщения о том, что кот кушает — "Eating. \n". За вывод текстового сообщения отвечает метод System.out.print("Eating. \n").
\n — символ перевода строки, чтобы при выводе наших сообщений все они не писались в одну строку.
Аналогично предыдущему методу опишем спящего кота:
И немного иначе опишем метод – кот говорит:
В отличие от предыдущих методов этот метод возвращает значение и имеет входные параметры. Давайте подробнее рассмотрим сигнатуру метода public String speak(String words):
public — метод speak() доступен для других классов;
String — тип значения, которое возвращает метод. В предыдущих случаях ключевое слово void указывало на то, что метод ничего не возвращает. В данном случае String указывает на то, что метод возвращает значение типа строка.
Что же это значит? В процессе своей работы метод выполняет определенные действия над данными. Иногда необходимо, чтобы результат этих действий был передан для дальнейшей обработки другим классам, в этом случае метод передает (возвращает) этот результат. Эти возвращаемые данные относятся к какому-либо типу. В нашем примере это тип символьной строки, String.
Возвращающие методы должны содержать в своем теле ключевое слово return, которое указывает на то, что именно возвращает данный метод. В нашем случае это переменная phrase.
speak — имя метода.
(String words) — входные параметры. Входные параметры — это какие-либо данные, которые передаются из других классов и, которые метод должен обработать. Наш метод получает в качестве входных данных строку в виде переменной words, к этой строке дописывает «. mauu. » и возвращает то, что получилось.
В итоге класс Cat выглядит следующим образом:
Обращение к классу в Java
Далее рассмотрим обращение к классу Cat. И то, как его использовать в работе.
public static void main(String[] args) – сигнатура метода main(). Программа состоит из нескольких классов, но только один из классов может содержать метод main(). Mетод main(), это так называемая точка входа в программу. Без этого метода мы не сможем стартовать программу. Теперь, вместо приветствия миру, этот метод будет содержать код для работы с классом Cat.
Пишем в тело метода main() (между его фигурными скобками) следующие строки:
Разберем подробнее, что это значит.
Прежде чем вызывать созданные нами методы в классе Cat и заставить нашего кота есть, спать и говорить, сперва нужно создать экземпляр класса (инстанцию).
Данная строчка нам говорит о том, что в памяти создан экземпляр объекта Cat, а переменная ourcat типа Cat (такого же, как и наш объект) указывает на то место в памяти, где был этот объект создан.
Переменную ourcat теперь можно использовать для вызова методов класса Cat, например:
При вызове этих методов в программе Eclipse удобно пользоваться комбинацией клавиш
Ctrl + пробел, после введения имени переменной и точки (рис 5.4). Программа подскажет, какие можно использовать методы для данной переменной.
Если метод возвращает какое-либо значение, например, как наш метод speak() возвращает значение типа String, то его можно вызывать следующим образом:
Вспомним, что при описании нашего метода он содержал параметры speak(String words). Теперь, при вызове в качестве параметра выступила фраза "Play with me", метод speak() ее обработал и вернул "Play with me. mauu. ". Именно это значение он присвоил переменной say.
Мы это можем проверить, выведя say на печать при помощи команды:
Итак, наш класс HelloWorld теперь выглядит следующим образом:
Теперь сохраним (Ctrl+Shift+S или ) и запустим () нашу программу. При запуске Eclipse может предложить выбрать Java Applet или Java Application. Нужно выбрать Java Application (рис 5.5).
В качестве результата внизу в консоли мы получаем следующие строки.
На этом закончим данный урок, итак, в этом уроке мы:
Для закрепления материала предлагаю самостоятельно создать класс Dog, где описать характеристики и поведение собаки, а потом вызвать этот класс из HelloWorld. Свои вопросы можете оставлять в комментариях.
Комментариев к записи: 115
При создании проекта выводится ошибка:
Build path specifies execution environment CDC-1.1/Foundation-1.1. There are no JREs installed in the workspace that are strictly compatible with this environment.
Чем это решить?
посмотрите тут https://www.eclipse.org/forums/index.php/t/685160/ или еще погуглите, я лично с таким не сталкивалась.
Здравствуйте!
Скажите пожалуйста, обязательно ли указывать права доступа конкретно для каждого атрибута в классе?
Если не указать, программа по умолчанию будет считать эти атрибуты доступными для любого класса в пакете, если вас такие права устраивают, то можете не указывать