Відповіді:
Це три абсолютно різні речі:
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в даному випадку).