Beste antwoord
Als een klasse geen toegangsmodificator heeft, wordt deze behandeld onder de standaardtoegangsmodificator.
Standaard toegangsmodificator betekent dat we niet expliciet een toegangsmodificator declareren voor een klasse, veld, methode, enz.
Een variabele of methode die wordt gedeclareerd zonder enige modificator voor toegangscontrole is beschikbaar voor iedereen andere klasse in hetzelfde pakket. De velden in een interface zijn impliciet openbaar statisch definitief en de methoden in een interface zijn standaard openbaar.
Openbaar -Een klasse, methode, constructor, interface, enz. Openbaar verklaard kan worden benaderd vanuit elke andere klasse . Daarom kunnen velden, methoden en blokken die binnen een openbare klasse zijn gedeclareerd, worden benaderd vanuit elke klasse die tot het Java Universe behoort.
Als de openbare klasse die we proberen te openen zich echter in een ander pakket bevindt, is de public class moet nog worden geïmporteerd. Vanwege klasse-overerving worden alle openbare methoden en variabelen van een klasse overgeërfd door zijn subklassen.
Voorbeeld
Public static void main (string [] args)
{
// …………………………………
}
De main () methode van een applicatie moet openbaar zijn. Anders zou het niet kunnen worden aangeroepen door een Java-interpreter (zoals java) om de klas uit te voeren.
Antwoord
Een Java-bestand kan geen enkele klassedefinitie hebben. wanneer we het java-bestand compileren, genereert de compiler onafhankelijke .class-bestanden voor elke klassedefinitie.
Als uw java-bestand een enige hoofdklasse heeft, is het niet nodig om het als openbaar te definiëren.
Als uw Java-bestand meerdere klassen heeft, kunt u niet elke klasse als openbaar maken, omdat slechts één openbare klasse is toegestaan in een Java-bestand. hier moeten de naam van de openbare klasse en de naam van het Java-bestand hetzelfde zijn.
//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
In het bovenstaande voorbeeld heb ik “de hoofdklasse niet als openbaar verklaard, maar het werkt nog steeds omdat ik de naam van de hoofdklasse als bestandsnaam heb opgegeven.
//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
Kijk nu, deze keer geeft het me een foutmelding. Het is dus een goede gewoonte om uw hoofdklasse als openbaar te definiëren als u meerdere klassen in één Java-bestand heeft. Zoals we weten, begint de uitvoering van het programma vanaf de hoofdmethode.
Ik hoop dat je het antwoord hebt