Відповіді:
Це три абсолютно різні речі:
public
означає, що метод є видимим і його можна викликати з інших об'єктів інших типів. Інші альтернативи private
, protected
, package
і package-private
. Дивіться тут для більш детальної інформації.
static
означає, що метод пов'язаний з класом, а не конкретним екземпляром (об'єктом) цього класу. Це означає, що ви можете викликати статичний метод, не створюючи об’єкт класу.
void
означає, що метод не має зворотного значення. Якщо метод повернув, int
ви б написали int
замість void
.
Поєднання всіх трьох з них найчастіше спостерігається за main
методом, який включатиме більшість навчальних посібників.
Три слова мають ортогональне значення.
public
означає, що метод буде видно з класів в інших пакетах.
static
означає, що метод не приєднаний до конкретного примірника, і він не має " this
". Це більш-менш функція.
void
- тип повернення. Це означає, що "цей метод нічого не повертає".
Громадськості ключове слово є специфікатором доступу, який дозволяє програмісту управляти видимістю членів класу. Коли перед членом класу передує загальнодоступний, тоді до нього можна отримати доступ за кодом поза класом, у якому він оголошений. (Протилежність public - приватна, що не дозволяє користувачеві використовувати код, визначений поза його класом.)
У цьому випадку він main( )
повинен бути оголошений загальнодоступним, оскільки він повинен бути викликаний кодом поза його класом при запуску програми.
Ключове слово статичний дозволяє main( )
викликати без необхідності інстанціювати певний екземпляр класу. Це необхідно, оскільки main( )
викликається інтерпретатором Java до того, як будуть зроблені будь-які об'єкти.
Ключове слово void просто повідомляє компілятору, що main( )
не повертає значення. Як ви побачите, методи можуть також повертати значення.
Це означає, що:
public
- його можна викликати з будь-якого місцяstatic
- він не має жодного стану об'єкта, тому ви можете викликати його без ініціалізації об'єктаvoid
- це нічого не повертаєВи можете подумати, що відсутність повернення означає, що вона не робить багато, але, можливо, це зберігає речі, наприклад, у базі даних.
Це означає три речі.
По-перше, public
означає, що будь-який інший об’єкт може отримати доступ до нього.
static
означає, що клас, в якому він перебуває, не повинен бути спочатку екземпляром, перш ніж функція може бути викликана.
void
означає, що функція не повертає значення.
Оскільки ви тільки навчаєтесь, не хвилюйтеся про перші два занадто багато, поки ви не дізнаєтесь про заняття, а третій не матиме великого значення, поки ви не почнете писати функції (крім основної, яка є).
Найкраща порада, яку я отримав, навчаючись програмувати, і яку я передаю вам, - це не хвилюйтеся за дрібниці, які ви не розумієте одразу. Отримайте широкий огляд основ, потім поверніться і потурбуйтеся про деталі. Причина полягає в тому, що ви повинні використовувати деякі речі (наприклад public static void
) у своїх перших програмах, які насправді неможливо пояснити, без того, щоб навчити вас спочатку про купу інших речей. Тож на даний момент просто прийміть, що так робиться, і рухайтеся далі. Ви їх зрозумієте незабаром.
Враховуючи типовий клас вищого рівня. Лише загальнодоступні та жодні модифікатори доступу модифікаторів не можуть використовуватися на верхньому рівні, тому ви будете бачити загальнодоступні або взагалі не побачити модифікатора доступу
`static`` використовується тому, що у вас може не виникати необхідності створювати фактичний об'єкт на верхньому рівні (але іноді вам захочеться, щоб ви не завжди бачили / використовували статику. Є й інші причини, чому ви не включаєте статичні теж, але це типовий на верхньому рівні.)
void
використовується тому, що зазвичай ви не збираєтеся повертати значення з верхнього рівня (класу). (іноді ви хочете повернути значення, відмінне від NULL
недійсного, не завжди може використовуватися, особливо в тому випадку, коли ви оголосили, ініціалізували об'єкт на верхньому рівні, якому ви присвоюєте якесь значення).
Відмова: Я сам новачок, тому якщо ця відповідь якимось чином не відповідає, будь ласка, не вішайте мене. По днях я рекрутер технологій, а не розробник; кодування - моє хобі. Крім того, я завжди відкритий для конструктивної критики і люблю вчитися, тому, будь ласка, не соромтесь вказувати на будь-які помилки.
public
означає, що ви можете отримати доступ до класу з будь-якого місця класу / об’єкта або поза пакетом чи класомstatic
означає константу, в якій блок висловлювань використовується лише 1 разvoid
означає відсутність типу поверненняPublic
- означає, що клас (програма) доступний для використання будь-яким іншим класом.
Static
- створює клас. Можна також застосовувати до змінних і методів, роблячи їх методами / змінними класу, а не просто локальними для певного екземпляра класу.
Void
- це означає, що жоден продукт не повертається, коли клас завершує обробку. Порівняйте це з допоміжними класами, які забезпечують повернення основного класу, вони функціонують як функції; ці декларації не мають значення.
static
означає, що метод пов'язаний з класом, а не конкретним екземпляром (об'єктом) цього класу. Це означає, що ви можете викликати статичний метод, не створюючи об’єкт класу. Через використання static
ключового слова main()
- це ваш перший метод, на який потрібно викликати ..
static
не потрібно жодному об'єкту екземпляру ... так, main( )
його викликає інтерпретатор Java до того, як будуть зроблені будь-які об'єкти.
public
,static
,private
і т.д.) , то тип повернення (void
в даному випадку).