Tutorials  /  JavaScript

Java Access Modifiers - Leitfaden

Ccentron Redaktion · April 2024 ·5 Min. Lesezeit ·JavaScript, Tutorial

Wir können Java Zugriffsmodifizierer sowohl mit Klassen als auch mit Klassenvariablen und Methoden verwenden. Wir dürfen nur die Zugriffsmodifizierer „public“ oder „default“ mit Java-Klassen verwenden.

Wenn eine Klasse „public“ ist, dann können wir sie von überall aus zugreifen, d.h. von jeder anderen Klasse aus, die sich in anderen Paketen befindet usw. Wir können nur eine „public“ Klasse in einer Quelldatei haben, und der Dateiname sollte derselbe wie der Klassenname der öffentlichen Klasse sein. Wenn die Klasse „default access“ hat, dann kann sie nur von anderen Klassen im selben Paket aus zugegriffen werden.

Java Access Modifiers with Class Member

Wir können alle vier Zugriffsmodifizierer für Variablen und Methoden von Klassenmitgliedern haben. Die Regeln für Zugriffsmodifizierer von Mitgliedern werden jedoch nach den Zugriffsregeln auf Klassenebene angewendet. Zum Beispiel, wenn eine Klasse einen Standardzugriff hat, wird sie in anderen Paketen nicht sichtbar sein und daher werden auch die Methoden und Variablen der Klasse nicht sichtbar sein. Wir werden uns jede davon separat ansehen und dann die Verwendung der Java-Zugriffsmodifizierer mit einem einfachen Programm zeigen.

VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

Java Access Modifiers - public keyword

Wenn ein Klassenmitglied „public“ ist, dann kann es von überall aus zugegriffen werden. Die Mitgliedsvariable oder Methode wird global zugegriffen. Dies ist die einfachste Möglichkeit, Zugang zu Klassenmitgliedern zu gewähren. Wir sollten jedoch vorsichtig sein, dieses Schlüsselwort bei Klassenvariablen zu verwenden, da sonst jeder die Werte ändern könnte. Normalerweise werden Klassenvariablen als privat gehalten und Getter-Setter-Methoden bereitgestellt, um mit ihnen zu arbeiten.

Java Access Modifiers - private keyword

Wenn ein Klassenmitglied „private“ ist, dann wird es nur innerhalb derselben Klasse zugänglich sein. Dies ist der eingeschränkteste Zugriff und das Klassenmitglied wird für die Außenwelt nicht sichtbar sein. Normalerweise halten wir Klassenvariablen als privat und Methoden, die nur innerhalb der Klasse verwendet werden sollen, als privat.

Java Access Modifiers - protected keyword

Wenn ein Klassenmitglied „protected“ ist, dann wird es nur für die Klassen im selben Paket und für die Unterklassen zugänglich sein. Dieser Modifizierer ist weniger eingeschränkt als privat, aber mehr eingeschränkt als öffentlicher Zugriff. Normalerweise verwenden wir dieses Schlüsselwort, um sicherzustellen, dass die Klassenvariablen nur für die Unterklassen zugänglich sind.

Java Access Modifiers - default access

Wenn einem Klassenmitglied kein Zugriffsmodifizierer zugewiesen ist, wird es mit Standardzugriff behandelt. Die Zugriffsregeln ähneln denen für Klassen, und das Klassenmitglied mit Standardzugriff wird nur für die Klassen im selben Paket zugänglich sein. Dieser Zugriff ist eingeschränkter als öffentlich und geschützt, aber weniger eingeschränkt als privat. (Am wenigsten zugänglich) privat < default < geschützt < öffentlich (Am meisten zugänglich)

Lassen Sie uns einige einfache Klassen schreiben, bei denen wir die Java-Zugriffsmodifizierer in Aktion sehen werden.

TestA.java

Go
package com.journaldev.access;

class TestA {

    public void methodPublic(){
        methodPrivate();
    }
    
    protected void methodProtected(){
        methodPrivate();
    }
    
    void methodDefault(){
        methodPrivate();
    }
    
    private void methodPrivate(){}
}

Beachten Sie, dass die Klasse TestA einen Standardzugriff hat und die private Klassenmethode für alle anderen Teile derselben Klasse zugänglich ist.

TestB.java

Go
package com.journaldev.access;

import com.journaldev.access.TestA;

public class TestB {

    public static void main(String args[]) {
        new TestA().methodPublic();
        new TestA().methodProtected();
        new TestA().methodDefault();
    }

    public void methodPublic() {

    }

    protected void methodProtected() {

    }

    void methodDefault() {

    }

    private void methodPrivate() {
    }

}

Beachten Sie, dass die Klasse TestB im selben Paket wie die Klasse TestA ist und daher auf deren Klassenmitglieder zugreifen kann. Private Mitglieder sind nicht zugänglich, aber alle anderen Mitglieder sind zugänglich, weil sie im selben Paket sind.

TestC.java

Go
package com.journaldev.access.child;

import com.journaldev.access.TestB;

public class TestC {

    public static void main(String[] args) {
        new TestB().methodPublic();
    }

}

Die Klasse TestB ist zugänglich, weil sie öffentlich ist. Nur die öffentlichen Mitglieder der Klasse TestB sind zugänglich, da die Klasse TestC weder im selben Paket noch eine Unterklasse von TestB ist.

TestE.java

Go
package com.journaldev.util;

import com.journaldev.access.TestB;

public class TestE extends TestB {

    public static to main(String[] args) {
        new TestB().methodPublic();
        new TestB().methodProtected(); // compile time error

        // works, accessing super class protected method using subclass
        new TestE().methodProtected();

    }

}

Da die Klasse TestE eine Unterklasse von TestB ist, können wir auf die geschützten Mitglieder von TestB über die Kinderklasse TestE zugreifen. Wenn wir versuchen, direkt auf die geschützte Methode der Oberklasse zuzugreifen, erhalten wir einen Kompilierungsfehler. Das ist alles zu den Java-Zugriffsmodifizierern, es ist einfach zu verstehen. Verwechseln Sie nur nicht den Standard- und den geschützten Zugriff. Eine einfache Art, sich zu erinnern, ist, dass der Standardzugriff eingeschränkter als der geschützte ist und geschützte Mitglieder in Unterklassen zugänglich sind.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren