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