Cel mai bun răspuns
Dacă o clasă nu are niciun modificator de acces, aceasta va fi tratată sub modificatorul de acces implicit.
Modificatorul de acces implicit înseamnă că nu declarăm în mod explicit un modificator de acces pentru o clasă, câmp, metodă etc.
O variabilă sau o metodă declarată fără niciun modificator de control al accesului este disponibilă pentru orice altă clasă din același pachet. Câmpurile dintr-o interfață sunt implicit publice statice finale și metodele dintr-o interfață sunt în mod implicit publice.
Public – O clasă, metodă, constructor, interfață etc. declarată publică poate fi accesată din orice altă clasă . Prin urmare, câmpurile, metodele, blocurile declarate în interiorul unei clase publice pot fi accesate din orice clasă aparținând Universului Java.
Cu toate acestea, dacă clasa publică pe care încercăm să o accesăm se află într-un pachet diferit, atunci clasa publică trebuie încă importată. Din cauza moștenirii clasei, toate metodele și variabilele publice ale unei clase sunt moștenite de subclasele sale.
Exemplu
Public static main principal (șir [] args)
{
// ………………………………
}
Metoda main () a unei aplicații trebuie să fie publică. În caz contrar, nu ar putea fi apelat de un interpret Java (cum ar fi java) pentru a rula clasa.
Răspuns
Un fișier Java poate avea orice definiție de clasă. când compilăm fișierul java, atunci compilatorul generează fișiere .class independente pentru fiecare definiție a clasei.
Dacă fișierul java are o singură clasă principală, atunci nu este necesar să-l definim ca public.
Dacă fișierul dvs. Java are mai multe clase, nu puteți face ca fiecare clasă să fie publică, deoarece este permisă o singură clasă publică în orice fișier Java. aici, numele clasei publice și numele fișierului Java trebuie să fie aceleași.
//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
În exemplul de mai sus, nu am declarat clasa principală ca fiind publică încă funcționează, deoarece am dat numele clasei principale ca nume de fișier.
//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
Acum vezi, de data aceasta îmi dă o eroare. deci, este o practică bună să vă definiți clasa principală ca publică dacă aveți mai multe clase într-un singur fișier Java. După cum știm că execuția programului începe de la metoda principală.
Sper că ați primit răspunsul