Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

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

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

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

Что такое модификаторы доступа?

В Java модификаторы доступа используются для установки доступности (видимости) классов, интерфейсов, переменных, методов, конструкторов, элементов данных и методов установки. Например,

class Animal {
    public void method1() {...}

   private void method2() {...}
}

В приведенном выше примере мы объявили 2 метода:method1() и method2(). Здесь

Обратите внимание на ключевое слово public. и private . Это модификаторы доступа в Java. Они также известны как модификаторы видимости.

Примечание :Вы не можете установить модификатор доступа для методов получения.

<час>

Типы модификаторов доступа

Прежде чем вы узнаете о типах модификаторов доступа, убедитесь, что вы знаете о пакетах Java.

В Java есть четыре ключевых слова модификаторов доступа:

Модификатор Описание
По умолчанию объявления видны только внутри пакета (пакет частный)
Частный объявления видны только внутри класса
Защищено объявления видны внутри пакета или всех подклассов
Общедоступно объявления видны везде
<час>

Модификатор доступа по умолчанию

Если мы явно не указываем какой-либо модификатор доступа для классов, методов, переменных и т. д., то по умолчанию рассматривается модификатор доступа по умолчанию. Например,

package defaultPackage;
class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

Здесь Логгер класс имеет модификатор доступа по умолчанию. И этот класс виден всем классам, принадлежащим defaultPackage. упаковка. Однако, если мы попытаемся использовать Logger класс в другом классе за пределами defaultPackage, мы получим ошибку компиляции.

<час>

Модификатор закрытого доступа

При объявлении переменных и методов private , они не могут быть доступны вне класса. Например,

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Programiz";
    }
}

В приведенном выше примере мы объявили приватную переменную с именем name. и частный метод с именем display() . Когда мы запустим программу, мы получим следующую ошибку:

Main.java:18: error: name has private access in Data
        d.name = "Programiz";
         ^

Ошибка возникает из-за того, что мы пытаемся получить доступ к частной переменной и частному методу Data. класс из Главного класс.

Вам может быть интересно, что, если нам понадобится доступ к этим закрытым переменным. В этом случае мы можем использовать метод геттеров и сеттеров. Например,

class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Programiz");
        System.out.println(d.getName());
    }
}

Вывод :

The name is Programiz

В приведенном выше примере у нас есть частная переменная с именем name. . Чтобы получить доступ к переменной из внешнего класса, мы использовали методы:getName() и setName() . Эти методы называются геттерами и сеттерами в Java.

Здесь мы использовали метод установки (setName() ), чтобы присвоить значение переменной и методу получения (getName() ) для доступа к переменной.

Мы использовали this ключевое слово внутри setName() для ссылки на переменную класса. Чтобы узнать больше об этом ключевом слове, посетите Java this Keyword.

Примечание :Мы не можем объявлять классы и интерфейсы приватными в Java. Однако вложенные классы можно объявить закрытыми. Чтобы узнать больше, посетите страницу Java Nested и Inner Class.

<час>

модификатор защищенного доступа

При объявлении методов и членов данных protected , мы можем получить к ним доступ как внутри одного пакета, так и из подклассов. Например,

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

Вывод :

I am an animal

В приведенном выше примере у нас есть защищенный метод с именем display(). внутри животного учебный класс. Животное класс наследуется собакой учебный класс. Чтобы узнать больше о наследовании, посетите страницу Наследование Java.

Затем мы создали объект собака Собаки учебный класс. С помощью объекта мы попытались получить доступ к защищенному методу родительского класса.

Поскольку к защищенным методам можно получить доступ из дочерних классов, мы можем получить доступ к методу Animal класс из класса Собака класс.

Примечание :мы не можем объявлять классы или интерфейсы protected на Java.

<час>

Модификатор общего доступа

При объявлении методов, переменных, классов и т. д. public , то мы можем получить к ним доступ из любого места. Модификатор общего доступа не имеет ограничения области действия. Например,

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}

Вывод :

I am an animal.
I have 4 legs.

Здесь

<час>

Модификаторы доступа представлены на одном рисунке

<рисунок>

Модификаторы доступа в основном используются для инкапсуляции. Я могу помочь нам контролировать, какая часть программы имеет доступ к членам класса. Так что неправильное использование данных может быть предотвращено. Чтобы узнать больше об инкапсуляции, посетите страницу Инкапсуляция Java.


java

  1. Модификаторы доступа C#
  2. Операторы Java
  3. Java-комментарии
  4. Java для каждого цикла
  5. Java-строки
  6. Java-интерфейс
  7. Анонимный класс Java
  8. Java-проба с ресурсами
  9. Java-аннотации
  10. Утверждения Java