Что означает «публичная статическая пустота» в Java? - PullRequest
136 голосов
/ 06 марта 2010

Что означает public static void в Java?

Я нахожусь в процессе обучения. Во всех примерах в книге, с которыми я работаю, public static void предшествует любому методу, который используется или создается. Что это значит?

Ответы [ 9 ]

213 голосов
/ 06 марта 2010

Это три совершенно разные вещи:

public означает, что метод является видимым и может вызываться из других объектов других типов. Другими альтернативами являются private, protected, package и package-private. Подробнее см. здесь .

static означает, что метод связан с классом, а не с конкретным экземпляром (объектом) этого класса. Это означает, что вы можете вызывать статический метод, не создавая объект класса.

void означает, что метод не имеет возвращаемого значения. Если метод вернул int, вы бы написали int вместо void.

Комбинация всех трех из них чаще всего встречается в методе main, который будет включен в большинство уроков.

42 голосов
/ 06 марта 2010

Три слова имеют ортогональные значения.

public означает, что метод будет виден из классов в других пакетах.

static означает, что метод не привязан к конкретному экземпляру и у него нет «this». Это более или менее функция.

void - это тип возвращаемого значения. Это значит «этот метод ничего не возвращает».

21 голосов
/ 04 сентября 2012

Ключевое слово public - это спецификатор доступа, который позволяет программисту контролировать видимость членов класса.Когда члену класса предшествует public, тогда к этому члену может обращаться код вне класса, в котором он объявлен.(Противоположностью public является private, что предотвращает использование члена кодом, определенным вне его класса.)

В этом случае main( ) должно быть объявлено как public, так как оно должно вызываться кодомвне своего класса, когда программа запускается.

Ключевое слово static позволяет вызывать main( ) без создания экземпляра определенного экземпляра класса.Это необходимо, поскольку интерпретатор Java вызывает main( ) перед созданием каких-либо объектов.

Ключевое слово void просто сообщает компилятору, что main( ) не возвращает значение.Как вы увидите, методы также могут возвращать значения.

16 голосов
/ 06 марта 2010

Это означает, что:

  • public - его можно вызвать из любого места
  • static - у него нет состояния объекта, поэтому вы можете вызывать его, не создавая объект
  • void - ничего не возвращается

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

4 голосов
/ 06 марта 2010

Это означает три вещи.

Первый public означает, что любой другой объект может получить к нему доступ.

static означает, что класс, в котором он находится, не должен бытьсначала создается до того, как функция может быть вызвана.

void означает, что функция не возвращает значение.

Поскольку вы только учитесь, не стоит слишком беспокоиться о первых двухпока вы не узнаете о классах, и третий не будет иметь большого значения, пока вы не начнете писать функции (кроме основной).

Лучший совет, который я получил при обучении программированию, и который я передаюты, не беспокойся о маленьких деталях, которые ты не понимаешь сразу.Получите широкий обзор основных принципов, а затем вернитесь к подробностям.Причина в том, что вы должны использовать некоторые вещи (например, public static void) в своих первых программах, которые не могут быть хорошо объяснены, если вы сначала не научите вас многим другим вещам.Итак, на данный момент, просто примите, что так оно и есть, и двигайтесь дальше.Вы скоро их поймете.

3 голосов
/ 25 августа 2012

Учитывая типичный класс высшего уровня. На верхнем уровне могут использоваться только публичные и никакие модификаторы доступа модификаторов, поэтому вы либо увидите публичные, либо вообще не увидите никаких модификаторов доступа.

`static`` используется, потому что вам может не понадобиться создавать реальный объект на верхнем уровне (но иногда вам захочется, чтобы вы не всегда видели / использовали статические. Существуют и другие причины, по которым вы не включали бы и статические, но это типичная для верхнего уровня.)

void используется, потому что обычно вы не собираетесь возвращать значение из верхнего уровня (класса). (иногда вы захотите вернуть значение, отличное от NULL, поэтому void может не всегда использоваться, особенно в случае, когда вы объявили, инициализировали объект на верхнем уровне, которому вы присваиваете какое-то значение). *

Отказ от ответственности: Я сам новичок, поэтому, если этот ответ каким-либо образом неверен, пожалуйста, не вешайте меня. Днем я технический рекрутер, а не разработчик; кодирование это мое хобби. Кроме того, я всегда открыт для конструктивной критики и люблю учиться, поэтому, пожалуйста, не стесняйтесь указывать на любые ошибки.

2 голосов
/ 16 января 2012
  • public означает, что вы можете получить доступ к классу из любого места в классе / объекте или вне пакета или класса
  • static означает константу, в которой блок выписки используется только 1 раз
  • void означает отсутствие типа возврата
2 голосов
/ 06 марта 2011

Public - означает, что класс (программа) доступен для использования любым другим классом.

Static - создает класс. Может также применяться к переменным и методам, делая их методами / переменными класса, а не просто локальными для определенного экземпляра класса.

Void - это означает, что продукт не возвращается, когда класс завершает обработку. Сравните это с вспомогательными классами, которые обеспечивают возвращаемое значение для основного класса, они работают как функции; они не имеют пустоты в декларации.

0 голосов
/ 08 января 2014

static означает, что метод связан с классом, а не с конкретным экземпляром (объектом) этого класса. Это означает, что вы можете вызывать статический метод, не создавая объект класса. Из-за использования ключевого слова static main() ваш первый метод должен быть вызван .. static не нужен объект для экземпляра ... поэтому main( ) вызывается интерпретатором Java перед созданием каких-либо объектов.

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