Migliore risposta
Se una classe non ha alcun modificatore di accesso, verrà trattata con il modificatore di accesso predefinito.
Modificatore di accesso predefinito significa che non dichiariamo esplicitamente un modificatore di accesso per una classe, un campo, un metodo, ecc.
Una variabile o un metodo dichiarato senza alcun modificatore di controllo dellaccesso è disponibile per qualsiasi altra classe nello stesso pacchetto. I campi in uninterfaccia sono implicitamente pubblici statici finali e i metodi in uninterfaccia sono pubblici per impostazione predefinita.
Pubblico -Una classe, un metodo, un costruttore, uninterfaccia, ecc. Dichiarati pubblici è accessibile da qualsiasi altra classe . Pertanto, è possibile accedere a campi, metodi, blocchi dichiarati allinterno di una classe pubblica da qualsiasi classe appartenente alluniverso Java.
Tuttavia, se la classe pubblica a cui stiamo tentando di accedere si trova in un pacchetto diverso, la la classe pubblica deve ancora essere importata. A causa dellereditarietà della classe, tutti i metodi e le variabili pubblici di una classe vengono ereditati dalle sue sottoclassi.
Esempio
Public static void main (string [] args)
{
// …………………………………
}
Il metodo main () di unapplicazione deve essere pubblico. Altrimenti, non potrebbe essere chiamato da un interprete Java (come java) per eseguire la classe.
Risposta
Un file Java può avere un numero qualsiasi di definizioni di classe. quando compiliamo il file java, il compilatore genera file .class indipendenti per ogni definizione di classe.
Se il tuo file java ha ununica classe principale, non è necessario definirlo come pubblico.
Se il tuo file Java ha più classi, non puoi rendere ogni classe pubblica perché è consentita solo una classe pubblica in ogni file Java. qui, il nome della classe pubblica e il nome del file Java devono essere gli stessi.
//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
Nellesempio sopra, non ho dichiarato la classe principale come pubblica ancora funzionante perché ho dato il nome della classe principale come nome del file.
//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
Ora vedi, questa volta mi dà un errore. quindi, è una buona pratica definire la tua classe principale come pubblica se hai più classi in un file java. Come sappiamo, lesecuzione del programma inizia dal metodo principale.
Spero che tu abbia la risposta