Java - публичный статический void main () - PullRequest
8 голосов
/ 21 марта 2010

Должен ли быть какой-то определенный порядок, в котором я должен написать следующее для основного метода Java?

public static void main()

Другими словами, могу ли я переставить public, static, void в любом порядке?

Почему или почему нет?

Ответы [ 5 ]

18 голосов
/ 21 марта 2010

void - это тип возвращаемого значения, поэтому он должен идти последним.Другие могут быть перетасованы (см. раздел 8.4 Спецификации языка Java для получения дополнительной информации об этом), но по соглашению модификатор доступа обычно идет перед большинством других модификаторов метода, за исключением аннотаций, которые обычно идут первыми(опять же, просто по соглашению).

3 голосов
/ 21 июля 2013

Мы можем написать, мы можем поменять static и public

static public void main(String args[])

static public void main(String... args)

Однако вы не можете перетасовать тип возврата с любой позицией, например,

public void static main(String[] args) // is wrong

, а также

static void public main(String[] args) // is also wrong
1 голос
/ 21 марта 2010

Вы могли бы легко опробовать различные варианты, чтобы увидеть, что работает, а что нет. Во-первых, ни один из них не будет работать, если вы не измените main() на main(String[] args). Кроме того, public и static являются модификаторами, которые могут иметь любой порядок, но большинство соглашений о стилях кода в любом случае имеют предписанный порядок. void должен находиться непосредственно перед именем метода, поскольку это тип возвращаемого значения, а не модификатор.

1 голос
/ 21 марта 2010

Подпись для main должна быть:

public static void main(String[] args){
    // Insert code here
}

Однако не требуется, чтобы один метод размещался перед другим методом.Они могут быть в любом порядке.Кроме того, Java использует двухпроходный механизм, так что даже если вы используете какой-то другой метод в своем «основном» методе, этот метод может фактически появиться позже в файле.Нет требования к прямому объявлению, как в C и C ++, из-за этого многопроходного подхода, принятого Java.

Модификаторы public и static могут быть перемешаны;однако, по соглашению, модификатор доступа (общедоступный, закрытый, защищенный) всегда указывается первым, статический и / или окончательный (если это применимо) указывается следующим, а затем тип возврата.

1 голос
/ 21 марта 2010

Короче, НЕТ, вы не можете Имя метода должно быть сразу же с префиксом возвращаемого типа метода. Это часть сигнатуры метода. Впрочем, наличие спецификатора доступа первым - соглашение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...