> 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

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://comaqa.gitbook.io/java-automation/oop-v-java/svoistva.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
