Nejlepší odpověď
Pokud třída nemá žádný modifikátor přístupu, bude s ní zacházeno pod výchozím modifikátorem přístupu.
Výchozí modifikátor přístupu znamená, že explicitně nedeklarujeme modifikátor přístupu pro třídu, pole, metodu atd.
Proměnná nebo metoda deklarovaná bez jakéhokoli modifikátoru řízení přístupu je k dispozici všem jiná třída ve stejném balíčku. Pole v rozhraní jsou implicitně veřejná statická konečná a metody v rozhraní jsou ve výchozím nastavení veřejné.
Veřejné – Třída, metoda, konstruktor, rozhraní atd. Deklarovaná jako veřejná je přístupná z jakékoli jiné třídy . K polím, metodám, blokům deklarovaným uvnitř veřejné třídy lze tedy přistupovat z jakékoli třídy patřící do Java Universe.
Pokud je však veřejná třída, ke které se pokoušíme přistupovat, v jiném balíčku, pak veřejnou třídu je stále třeba importovat. Z důvodu dědičnosti třídy jsou všechny veřejné metody a proměnné třídy zděděny jejími podtřídami.
Příklad
Public static void main (string [] args)
{
// …………………………………
}
Metoda main () aplikace musí být veřejná. Jinak by jej nemohl zavolat interpret jazyka Java (například java) ke spuštění třídy.
Odpověď
Soubor Java může mít libovolnou definici třídy. když kompilujeme java soubor, pak kompilátor vygeneruje nezávislé soubory .class pro každou definici třídy.
Pokud má váš java soubor pouze hlavní třídu, není nutné ji definovat jako veřejnou.
Pokud má váš soubor Java více tříd, nemůžete každou třídu nastavit jako veřejnou, protože v jakémkoli souboru Java je povolena pouze jedna veřejná třída. zde musí být název veřejné třídy a název souboru Java stejné.
//filename: Main6.java
class Demo2
{
public void Demo2()
{
System.out.println("Hello world");
}
}
class Main6
{
public static void main(String[] args)
{
Demo2 d=new Demo2();
d.Demo2();
}
}
output
Hello world
Ve výše uvedeném příkladu jsem nehlásil hlavní třídu jako veřejnou, stále funguje, protože jsem jako název souboru uvedl název hlavní třídy.
//filename: Main6.java
public class Demo2
{
public void Demo2()
{
System.out.println("Hello world");
}
}
class Main6
{
public static void main(String[] args)
{
Demo2 d=new Demo2();
d.Demo2();
}
}
output:
Main6.java:1: error: class Demo2 is public, should be declared in a file named Demo2.java
Nyní se podívejte, tentokrát mi to dělá chybu. Je tedy dobré definovat hlavní třídu jako veřejnou, pokud máte více tříd v jednom souboru Java. Jak víme, spuštění programu začíná od hlavní metody.
Doufám, že jste dostali odpověď