JavaStart
918 subscribers
898 photos
27 videos
606 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
ООП, Инкапсуляция в Java простыми словами. Часть 1.

Инкапсуляция – это одна из четырёх фундаментальных концепций ООП. Названия оставшихся трёх: наследование, полиморфизм, абстракция.

Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.

Для достижения инкапсуляции в Java:

1) Объявите переменные класса как private;

2) Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.

Рассмотрим пример Инкапсуляции на Картинке 1.

У нас есть некий класс EncapsulationClass со своими атрибутами – 3 private поля: name, id и age. А значит напрямую эти поля недоступны из других классов. Но также у нас есть публичные (public) методы, взаимодействующие с этими приватными полями. Следовательно, эти методы доступны в других классах.

Публичные методы setXXX() и getXXX() являются точками доступа переменных экземпляра класса EncapsulationClass. Обычно эти методы упоминаются как геттеры и сеттеры (Getters and Setters).

Следовательно, любой класс, который хочет получить доступ к переменным, должен получить к ним доступ через эти геттеры и сеттеры.

Доступ к переменным класса EncapsulationClass можно получить следующей программой (Картинка 2).

Мы получим следующий результат:

Имя: Олег, возраст: 28.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👨‍💻2
Что вернёт вызов Stream.of(1,2,3).map(i -> i*2).collect(Collectors.toSet()) ?
Anonymous Quiz
6%
[2,4,6] (List)
2%
Optional[6]
85%
{2,4,6} (Set)
0%
Stream<Integer>
8%
Посмотреть ответ
4👍3🎉1
Что произойдёт при попытке добавить элемент в List внутри метода, отмеченного @Transactional(propagation = Propagation.MANDATORY), если текущей транзакции нет?
Anonymous Quiz
25%
Создастся новая транзакция
12%
Операция выполнится без транзакции
31%
Бросится IllegalTransactionStateException
8%
Произойдёт RollbackException
25%
Посмотреть ответ
3👍2🔥2
ООП, Инкапсуляция в Java простыми словами. Часть 2.

Скрытие информации в Java. Модификаторы доступа.

Как мы уже рассмотрели ранее, мы используем концепцию инкапсуляции для реализации механизма сокрытия информации.

Этот подход, как и абстракция, один из наиболее часто используемых механизмов в Java. Механизм сокрытия делает атрибуты класса недоступными извне и защищенными от нежелательных/случайных действий.

Говоря об этой концепции, не лишним будет разобрать инструменты для обозначения доступности элементов – модификаторы доступа. Java поддерживает четыре модификатора доступа, используемые для определения видимости классов, методов и атрибутов. Каждый из них указывает уровень доступности, и мы можем использовать только один для каждого класса, метода или атрибута.

Перечислим их, начиная с наиболее ограничивающих:

1) private;
2) no modifier (package);
3) protected;
4) public.

Теперь подробнее:

1) Модификатор private.

Самый ограничивающий и наиболее часто используемый модификатор доступа private делает атрибут или метод доступным только в пределах одного и того же класса. Подклассы или любые другие классы не могут получить доступ к этому атрибуту или методу. Используем его только для атрибутов и методов, которые мы больше никогда не захотим вызвать.

2) Модификатор no modifier (package).

Отсутствие модификатора означает, что вы можете получить доступ к атрибутам и методам внутри вашего класса и из всех классов в одном пакете. Вот почему его часто называют пакетным.

3) Модификатор protected.

Атрибуты и методы с модификатором доступа protected могут быть доступны внутри вашего класса, всеми классами в одном пакете, а также всеми наследниками в любых пакетах. Этот модификатор, как правило, используется для внутренних методов, которые должны вызываться или переопределяться классами наследниками.

4) Модификатор public.

Доступ к методам и атрибутам, использующим модификатор public, можно получить как в текущем классе, так и во всех других классах.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥31
Когда нанял джуна фиксить баги

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
😁53👨‍💻1
ООП, Инкапсуляция в Java простыми словами. Часть 3.

Выводы.

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

Преимущества инкапсуляции.

1) Поля класса можно сделать только для чтения или только для записи;

2) Класс может иметь полный контроль над тем, что хранится в его полях.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🤓2
Какое поле файла pom.xml Maven управляет версией зависимостей без прямого указания её во всех dependency?
Anonymous Quiz
8%
<modules>
31%
<properties>
7%
<build>
42%
<dependencyManagement>
12%
Посмотреть ответ
👍32🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥3👍2
Какой тип теста в Spring Boot запускается с контекстом, но без поднятия полного сервера (только слой MVC)?
Anonymous Quiz
14%
Посмотреть ответ
👍32👨‍💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3😁21
Архитектура приложений простыми словами. Часть 1. Микросервисная архитектура.

Давайте поговорим о микросервисной архитектуре. На собеседованиях иногда могут спросить о вашем понимании микросервисов в целом.

Что такое микросервисы?

Микросервисы – это подход к разработке приложений, при котором оно разбивается на небольшие, независимые компоненты, называемые микросервисами. Каждый микросервис представляет собой отдельную функциональность, выполняет свою задачу и взаимодействует с другими микросервисами через API (Application Programming Interface).

Преимущества микросервисной архитектуры:

🚀 Масштабируемость
Мы можем масштабировать только те компоненты, которые нуждаются в дополнительных ресурсах, что позволяет оптимизировать использование ресурсов.

🎯 Гибкость и независимость
Каждый микросервис может быть разработан, развернут и обновлен независимо. Это облегчает поддержку, устранение ошибок и внесение изменений.

🌐 Распределенность
Микросервисы могут быть написаны на разных языках программирования и развернуты на разных серверах, что способствует разнообразию технологий и улучшает эффективность команды.

💡 Инновации и эксперименты
Благодаря независимости микросервисов, мы можем быстро внедрять новые идеи и технологии, не затрагивая всё приложение.

Недостатки микросервисной архитектуры:

⚖️ Сложность управления
С ростом количества микросервисов возникает сложность управления, мониторинга и отладки всей системы.

🧩 Сетевое взаимодействие
Коммуникация между микросервисами требует хорошо продуманного и надежного сетевого взаимодействия.

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

Пример из практики:

Uber: Микросервисы позволяют Uber обеспечивать гладкое взаимодействие между водителями и пассажирами, обрабатывать огромное количество запросов и обеспечивать высокую доступность.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1👨‍💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁3💯21
Какой функциональный интерфейс из java.util.function предназначен для преобразования значения из типа T в тип R?
Anonymous Quiz
9%
Supplier<R>
8%
Predicate<T>
72%
Function<T,R>
6%
Consumer<T>
6%
Посмотреть ответ
👍32🎉2
Что напечатает код?

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Что напечатает код?
Anonymous Quiz
55%
1
36%
2
7%
Что-то другое
2%
Посмотреть ответ
3👍2🎉1
Архитектура приложений простыми словами. Часть 2. Монолитная архитектура.

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

Что такое монолит?

Монолит – это архитектурный подход, при котором все компоненты приложения объединены в одну большую программу. Весь код, базы данных и функциональности находятся внутри этого "единого" приложения.

Преимущества монолитной архитектуры:

🚀 Простота начала
Разработка и развертывание монолитного приложения обычно проще, особенно для начинающих.

🔄 Меньше сложности
Все компоненты находятся в одном месте, что упрощает отладку и обслуживание.

📦 Простота масштабирования
При необходимости можно масштабировать весь монолит.

Когда выбрать монолит?

🔹 Если наш проект небольшой и нам важно быстро начать.
🔹 Если команда разработчиков ограничена и нам нужно облегчить управление проектом.

Секрет успешной монолитной архитектуры:

🧩 Хорошая структура кода
Желательно разделять код на логические модули, чтобы упростить понимание и поддержку.

🛠️ Обновления
Желательно регулярно обновлять библиотеки и компоненты для поддержания безопасности и актуальности.

Так что, несмотря на рост популярности микросервисов, монолиты остаются надежным и удобным вариантом для начинающих программистов и небольших проектов.

Проявите креативность, структурируйте код и продолжайте учиться – и ваши монолиты будут стремительно расти вместе с вами!

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥1