Mi a különbség a Java-ban a nyilvános osztály és az osztály között?


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

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük