Sobes.tech
Junior — Middle

Az Java belső osztálya zárt más osztályok számára való hozzáféréshez?

sobes.tech MI

Válasz az MI-től

A Java belső osztályának nem feltétlenül kell privátnek lennie ahhoz, hogy más osztályokból hozzáférhető legyen. A belső osztályhoz való hozzáférés attól függ, hogy milyen hozzáférési módot adtunk neki (private, protected, public vagy package-private). Például, ha a belső osztályt private-ként deklaráljuk, akkor csak a külső osztályon belül érhető el. Ha public-ként vagy módosító nélkül (package-private) van deklarálva, akkor ugyanúgy elérhető más osztályokból ugyanabban a csomagban vagy importálással.

Példa:

public class Outer {
    private class InnerPrivate {}
    public class InnerPublic {}
}

// Egy másik osztályból ugyanabban a csomagban:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // hozzáférés engedélyezett
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // fordítási hiba