> For the complete documentation index, see [llms.txt](https://comaqa.gitbook.io/java-automation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://comaqa.gitbook.io/java-automation/oop-v-java/svoistva.md).

# Свойства

Рассмотрим доступ к переменным объектов с помощью геттеров и сеттеров. Примером плохого написания кода считается, использование для переменных класса модификатора доступа public. Это нарушает принцип инкапсуляции. Поэтому для защиты был придуман механизм доступа к переменным через get и set (геттер и сеттер) методы, которые обычно называют свойства.

Get позволяет получить значения (читать значения), а Set — записать значения в переменную. В коде они не отличаются от обычных методов. Но имя метода всегда начинается с префикса get или set.

Объявим все переменные с модификатором доступа private. Теперь все переменные доступны только внутри класса.

```
Class MyClass {
    private String name = "Vadim";
    private int age = 33;
}
```

Теперь организуем доступ через геттеры и сеттеры. Для них мы используем модификатор доступа public, затем идет тип переменной (для каждой свой, такой же, как и у переменных, которые мы закрыли), затем имя метода (префикс get/set и само имя переменной). В фигурных скобках пишем return имя\_переменной; для возврата значения переменной (чтения).

```
Class MyClass {
    private String name = "Vadim";
    private int age = 33;

    public String getName() {
        return name;
    }

    public int getAge(){
        return age;
    }
}
```

Теперь у нас есть доступ к чтению переменных. Давайте настроим доступ к их записи через set.

```
Class MyClass {
    private String name = "Vadim";
    private int age = 33;

    public String getName() {
        return name;
    }

    public int getAge(){
        return age;
    }

    public void setName(String newName) {
        name = newName;
    }

    public void setAge(int newAge) {
        age = newAge;
    }
}
```

Вопрос 1

```
Как вам кажется, в чём преимущество при использовании свойств?
```

Вопрос 2

```
Можем ли мы в сеттер не передавать параметры?
```
