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

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

1. `public`: доступны из любого места в программе, включая другие пакеты.

2. `protected`: доступны в текущем классе, пакете и любом наследуемом классе.

3. `default` (не указан): доступны только в текущем пакете.

4. `private`: доступны только в текущем классе.

Например, если мы имеем класс `Person`, который имеет приватное поле `age`, то только методы внутри этого класса могут получить доступ к полю `age`. Если мы используем модификатор доступа `public` на поле `age`, его можно использовать из любого места в программе.

Пример:


public class Person {
    private int age;
    public String name;
    protected String address;
    String gender; // default access modifier
    public void setAge(int age) {
        this.age = age;
    }
    public int getAge() {
        return age;
    }
}
public class Employee extends Person {
    public void work() {
        System.out.println(name + " is working.");
        System.out.println(address + " is the address of " + name);
        // can't access age directly, must use getAge() method
        System.out.println(name + "'s age is " + getAge());
    }
}
public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setAge(25);
        person.name = "John";
        person.address = "123 Main St.";
        person.gender = "male";
        System.out.println(person.name + " is " + person.getAge() + " years old.");
        
        Employee employee = new Employee();
        employee.name = "Jane";
        employee.address = "456 Elm St.";
        employee.gender = "female";
        employee.setAge(30);
        employee.work();
    }
}

В этом примере класс `Person` определен с разными модификаторами доступа для полей `age`, `name`, `address` и `gender`. Класс `Employee` наследует класс `Person`, и имеет доступ к защищенному и публичному полям. В методе `work()` мы можем использовать доступные поля, но не можем напрямую использовать приватное поле `age`, поэтому мы используем метод `getAge()`. В методе `main()` мы создаем экземпляры `Person` и `Employee` и используем их методы и поля различных уровней доступа.

Похожие вопросы на: "java модификаторы доступа "

Python форматирование строк: примеры и советы
Форматирование даты и времени Python с помощью модуля datetime
Oracle JDK: официальная Java Development Kit
CSS Align: Your Ultimate Guide to Achieving Perfect Alignment in Web Design
Pandas Append: Combining DataFrames Made Easy
MusicBrainz - открытая база данных музыкальных записей для всех
Как поменять шрифт в HTML: полезные советы
Обновление pip: как обновить pip на вашем компьютере
One to Many: Что это и как преимущество в бизнесе
Использование CSS Background URL для создания потрясающего веб-дизайна