Frage

    

Diese Frage bereits eine Antwort hier:

         

Ein wenig in Bezug auf meinen andere Frage : Was ist der Unterschied zwischen dem folgende ist:

private class Joe
protected class Joe
public class Joe
class Joe

Wieder einmal der Unterschied zwischen den letzten 2 ist, was mich am meisten interessiert.

War es hilfreich?

Lösung

Eine öffentliche Klasse ist zugänglich für eine Klasse in jedem Paket.

A-Klasse mit Standardzugang (class Joe) ist nur sichtbar für andere Klassen im selben Paket.

Die privaten und geschützten Modifikatoren können nur auf innere Klassen angewendet werden.

Eine private Klasse ist nur sichtbar für seine umgebende Klasse, und andere innere Klassen in der gleichen umgebenden Klasse.

Eine geschützte Klasse ist sichtbar für andere Klassen im selben Paket, und Klassen, die die umgebende Klasse erweitern.

Andere Tipps

  • privat: sichtbar für Außen Klassen nur
  • geschützt: sichtbar für Außen Klassen nur
  • public: sichtbar für alle anderen Klassen
  • Klasse: package-private, so sichtbar für Klassen im gleichen Paket

Siehe JLS für weitere Informationen .

A-Klasse mit Standardzugriffs hat keinen Modifikator es in der Erklärung der vorhergehenden.

Die Standardzugriffs ist ein Paket-Level-Zugriff, da eine Klasse mit Standardzugriff kann nur von Klassen im gleichen Paket zu sehen.

Wenn eine Klasse Standardzugriff hat, eine Klasse in einem anderen Paket nicht in der Lage sein, eine Instanz dieser Klasse zu erstellen, oder auch eine Variable deklarieren oder Rückgabetyp . Der Compiler wird sich beschweren. Zum Beispiel:

package humanity;
class Person {}

package family;
import humanity.Person;
class Child extends Person {}

Versuchen Sie, diese 2 Quellen zu kompilieren. Wie Sie sehen können, sind sie verschiedene Pakete in und die Kompilierung fehl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top