Legjobb válasz
Ha egy osztálynak nincs hozzáférési módosítója, akkor az alapértelmezett hozzáférés-módosítóval lesz kezelve.
Az alapértelmezett hozzáférés-módosító azt jelenti, hogy nem kifejezetten deklarálunk egy osztály, mező, módszer stb. hozzáférés-módosítót.
A hozzáférés-módosító nélkül deklarált változó vagy módszer bárki számára elérhető másik osztály ugyanabban a csomagban. Az interfész mezői implicit módon nyilvános statikus véglegesek, a metódusok pedig alapértelmezés szerint nyilvánosak.
Nyilvános – nyilvánosnak nyilvánított osztály, módszer, konstruktor, interfész stb. Bármely más osztályból elérhető. . Ezért a nyilvános osztályon deklarált mezők, metódusok és blokkok hozzáférhetők a Java Univerzumhoz tartozó bármely osztályból.
Ha azonban a nyilvános osztály, amelyhez megpróbálunk hozzáférni, egy másik csomagban van, akkor a a közosztályt még importálni kell. Az osztályöröklés miatt az osztály összes nyilvános módszerét és változóját az alosztályai öröklik.
Példa
Public static void main (string [] args)
{
// …………………………………
}
Az alkalmazás fő () metódusának nyilvánosnak kell lennie. Ellenkező esetben egy Java tolmács (például java) nem hívhatta meg az osztály futtatására.
Válasz
A Java fájlban nem lehet osztálydefiníció. amikor lefordítjuk a java fájlt, akkor a fordító független .class fájlokat generál minden osztálydefinícióhoz.
Ha a java fájlodnak csak egy fő osztálya van, akkor nincs szükség nyilvánosként történő meghatározásra.
Ha a Java fájljának több osztálya van, akkor nem tehet minden osztályt nyilvánossá, mert bármely Java fájlban csak egy nyilvános osztály engedélyezett. itt a nyilvános osztály és a Java fájl nevének meg kell egyeznie.
 //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 
A fenti példában nem nyilvánítottam a főosztályt nyilvánosnak, még mindig működik, mert fájlnévként a főosztály nevét adtam meg.
 //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 
Most nézze meg, ezúttal hibát ad nekem. így, jó gyakorlat, ha a fő osztályodat nyilvánosnak definiálod, ha egy java fájlban több osztály van. Mint tudjuk, a program végrehajtása a fő módszerből indul.
Remélem, megkapta a választ