Что означает public static void
в Java?
Я участвую в процессе обучения. Во всех примерах из книги, в которой я работаю из public static void
, появляется перед любым методом, который используется или создается. Что это значит?
Что означает public static void
в Java?
Я участвую в процессе обучения. Во всех примерах из книги, в которой я работаю из public static void
, появляется перед любым методом, который используется или создается. Что это значит?
Это три совершенно разные вещи:
public
означает, что метод видим и может быть вызван из других объектов других типов. Другие альтернативы являются частными, защищенными, пакетными и частными. Подробнее см. здесь.
static
означает, что метод связан с классом, а не с конкретным экземпляром (объектом) этого класса. Это означает, что вы можете вызвать статический метод, не создавая объект класса.
void
означает, что метод не имеет возвращаемого значения. Если метод возвратил int
, вы должны написать int
вместо void
.
Комбинация всех трех из них наиболее часто встречается в методе main
, который будет включать большинство учебных пособий.
Три слова имеют ортогональные значения.
public
означает, что метод будет виден из классов в других пакетах.
static
означает, что метод не привязан к определенному экземпляру, и он не имеет "this
". Это более или менее функция.
void
- тип возвращаемого значения. Это означает, что "этот метод ничего не возвращает".
Ключевое слово public - это спецификатор доступа, который позволяет программисту контролировать видимость членов класса. Когда член класса предшествует публике, то к этому члену может обращаться код вне класса, в котором он объявлен. (Противоположность public является частной, что не позволяет члену использоваться кодом, определенным вне его класса.)
В этом случае main( )
должен быть объявлен как открытый, так как он должен вызываться кодом вне его класса при запуске программы.
Ключевое слово static позволяет вызывать main( )
без необходимости создания экземпляра конкретного экземпляра класса. Это необходимо, так как main( )
вызывается интерпретатором Java до того, как будут созданы какие-либо объекты.
Ключевое слово void просто сообщает компилятору, что main( )
не возвращает значение. Как вы увидите, методы также могут возвращать значения.
Это означает, что:
public
- его можно вызывать из любого местаstatic
- он не имеет никакого состояния объекта, поэтому вы можете вызвать его без создания экземпляра объектаvoid
- он ничего не возвращаетВы подумали бы, что отсутствие возврата означает, что он мало что делает, но, возможно, это может спасти вещи в базе данных.
Это означает три вещи.
Первый public
означает, что любой другой объект может получить к нему доступ.
static
означает, что класс, в котором он находится, не должен быть создан первым, прежде чем функция может быть вызвана.
void
означает, что функция не возвращает значение.
Поскольку вы просто учитесь, не беспокойтесь о первых двух слишком много, пока вы не узнаете о классах, а третий не будет иметь большого значения, пока вы не начнете писать функции (кроме основного).
Лучший совет, который я получил, когда участвую в программе, и который я передаю вам, не беспокоится о маленьких деталях, которые вы не понимаете сразу. Получите широкий обзор основных принципов, затем вернитесь и подумайте о деталях. Причина в том, что вы должны использовать некоторые вещи (например, public static void
) в своих первых программах, которые не могут быть действительно хорошо объяснены, не обучая вас сначала кучу других вещей. Итак, на данный момент, просто примите, что так оно и было, и двигайтесь дальше. Вы скоро их поймете.
Public
- означает, что класс (программа) доступен для использования любым другим классом.
Static
- создает класс. Может также применяться к переменным и методам, делая их методы/переменные класса, а не только локальными для конкретного экземпляра класса.
Void
- это означает, что продукт не возвращается, когда класс завершает обработку. Сравните это со вспомогательными классами, которые предоставляют возвращаемое значение основному классу, они работают как функции; они не имеют пробелов в объявлении.
Учитывая типичный класс верхнего уровня. На верхнем уровне могут использоваться только общедоступные модификаторы и модификаторы модификатора, так что вы будете либо публичными, либо вообще не увидите никакого модификатора доступа.
`static`` используется, потому что вам может не понадобиться создавать фактический объект на верхнем уровне (но иногда вам захочется, чтобы вы не всегда могли видеть/использовать статику. Существуют и другие причины, по которым вы не включили бы статику тоже, но это типичный на верхнем уровне.)
void
используется, потому что обычно вы не собираетесь возвращать значение с верхнего уровня (класса). (иногда вам нужно вернуть значение, отличное от NULL
, поэтому void не всегда может использоваться, особенно в том случае, если вы объявили, инициализировали объект на верхнем уровне, которому вы назначаете какое-то значение).
Отказ от ответственности: Я сам новичок, поэтому, если этот ответ ошибочен, пожалуйста, не вешайте меня. Днем я технический рекрутер, а не разработчик; кодирование - мое хобби. Кроме того, я всегда открыт для конструктивной критики и любви к учебе, поэтому, пожалуйста, не стесняйтесь указывать на любые ошибки.
public
означает, что вы можете получить доступ к классу из любого места класса/объекта или вне пакета или классаstatic
означает константу, в которой блок выражения используется только 1 разvoid
означает тип возврата static
означает, что метод связан с классом, а не с конкретным экземпляром (объектом) этого класса. Это означает, что вы можете вызвать статический метод, не создавая объект класса.
Из-за использования ключевого слова static
main()
- ваш первый метод, который нужно вызвать.
static
не нужен какой-либо объект для экземпляра...
поэтому, main( )
вызывается интерпретатором Java до того, как будут созданы какие-либо объекты.