Bedste svar
Hvis en klasse ikke har nogen adgangsmodifikator, behandles den under standardadgangsmodifikator.
Standardadgangsmodifikator betyder, at vi ikke eksplicit erklærer en adgangsmodifikator for en klasse, felt, metode osv.
En variabel eller metode, der er erklæret uden adgangskontrolmodifikator, er tilgængelig for enhver anden klasse i samme pakke. Felterne i en grænseflade er implicit offentlig statisk endelig, og metoderne i en grænseflade er som standard offentlige.
Offentlig -En klasse, metode, konstruktør, grænseflade osv. Erklæret offentlig kan tilgås fra enhver anden klasse . Derfor kan man få adgang til felter, metoder, blokke, der er erklæret i en offentlig klasse, fra enhver klasse, der hører til Java-universet.
Men hvis den offentlige klasse, vi prøver at få adgang til, er i en anden pakke, så offentlig klasse skal stadig importeres. På grund af klassearv arves alle offentlige metoder og variabler i en klasse af dens underklasser.
Eksempel
Offentligt statisk ugyldigt hoved (streng [] args)
{
// ……………………………………
}
En applikations hovedmetode () skal være offentlig. Ellers kunne det ikke kaldes af en Java-tolk (såsom java) for at køre klassen.
Svar
En Java-fil kan have noget af klassedefinitioner. når vi kompilerer java-filen, genererer compileren uafhængige .class-filer til hver klassedefinition.
Hvis din java-fil kun har en hovedklasse, er der ikke behov for at definere den som offentlig.
Hvis din Java-fil har flere klasser, kan du ikke gøre hver klasse til offentlig, fordi kun en offentlig klasse er tilladt i en hvilken som helst Java-fil. her skal navnet på den offentlige klasse og navnet på Java-filen være det samme.
//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
I ovenstående eksempel har jeg ikke erklæret hovedklassen som offentlig, stadig fungerer den, fordi jeg gav hovedklassens navn som filnavnet.
//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
Se nu, denne gang giver det mig en fejl. så det er god praksis at definere din hovedklasse som offentlig, hvis du har flere klasser i en java-fil. Som vi ved, starter programudførelsen fra hovedmetoden.
Håber du har svaret