digital-garden/dev/java/Статическое связывание в Java.md

56 lines
3.1 KiB
Markdown
Raw Normal View History

---
aliases:
tags:
- maturity/🌱
date: 2024-10-05
zero-link:
parents:
linked:
---
Примеры [[../other/Статическое связывание|статического связывания]] в Java
**Перегрузка методов (Method Overloading).** Когда методы с одним именем имеют разные параметры (тип или количество). Решение о том, какой метод вызвать, принимается на этапе компиляции.
```java
class Example {
void show(int x) {
System.out.println("Integer: " + x);
}
void show(String s) {
System.out.println("String: " + s);
}
}
```
**Методы или поля с ключевым словом** `final`
Методы и поля, помеченные как `final`, подлежат статическому связыванию, так как их реализация не может быть изменена.
**Методы или поля внутри** `private` **классов**
Методы, объявленные с модификатором доступа `private`, также связываются статически, поскольку они недоступны для переопределения в подклассах.
**Статические методы (Static Methods)**
Статические методы связаны с классом, а не с объектом. Поэтому их связывание происходит на этапе компиляции.
**Простые вызовы полей**
Доступ к полям (переменным класса) также осуществляется через статическое связывание. Например, если переменная является примитивным типом или объявлена как `static`, её связывание происходит на этапе компиляции.
**Перегрузка операторов (Operator Overloading)**
Хотя Java не поддерживает прямую перегрузку операторов, операторы, такие как + для строк, являются примерами статического связывания. Компилятор точно знает, какой оператор будет использован с каким типом данных.
```java
String result = "Hello" + "World"; // Конкатенация строк
```
***
## Мета информация
**Область**:: [[../../../../garden/ru/meta/zero/00 Java разработка|00 Java разработка]]
**Родитель**:: [[../../../../garden/ru/dev/other/Статическое связывание|Статическое связывание]]
**Источник**::
**Создана**:: [[2024-10-05]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->