popov . dev

Главная

Библиотека

Статьи

Модификаторы дос...

Модификаторы доступа в Java

В Java модификаторы доступа - это ключевые слова, используемые для определения доступности или наглядности классов, методов, переменных и конструкторов.

Модификатор Класс Пакет Подкласс Глобальный
public
protected
default
private

В Java существует четыре типа модификаторов доступа:

  • public: предоставляет неограниченный доступ к классу, методу, переменной или конструктору из любого другого класса в том же пакете или в разных пакетах. Он обеспечивает высочайший уровень видимости.
  • protected: разрешает доступ к классу, методу или переменной в пределах того же пакета или подклассов (в любом пакете). Он более ограничительный, чем public, но менее ограниченый, чем доступ default (package-private).
  • default (без модификатора): если модификатор доступа не указан, применяется модификатор доступа default. Он разрешает доступ к классу, методу или переменной только в пределах одного пакета. Он также известен как package-private.
  • private: ограничивает доступ к классу, методу или переменной только в пределах одного класса. Он обеспечивает наивысший уровень инкапсуляции и является наиболее ограничивающим модификатором доступа

Приведем пример, демонстрирующий использование модификаторов доступа:

package com.example;

public class MyClass {
    public int publicVar;
    protected int protectedVar;
    int defaultVar; // модификатор доступа default
    private int privateVar;
    
    public void publicMethod() {
        // код доступен везде
    }
    
    protected void protectedMethod() {
        // Код доступен в пределах одного пакета и подклассов
    }
    
    void defaultMethod() {
        // Код доступнен в пределах одного пакета
    }
    
    private void privateMethod() {
        // Код доступнен только в пределах одного класса
    }
}

В приведенном выше примере к publicVar и publicMethod() можно получить доступ из любого класса, в то время как к protectedVar и protectedMethod() можно получить доступ из одного пакета или подклассов. defaultVar и defaultMethod() имеют закрытый доступ к пакету, что означает, что они доступны только в пределах одного пакета. privateVar и privateMethod() доступны только в пределах одного класса.

Комментарии

Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте