Что обязательно следует переопределить вместе с equals() для корректной работы хеш-коллекций?
Anonymous Quiz
1%
clone()
8%
toString()
2%
finalize()
87%
hashCode()
1%
Посмотреть ответ
Основные принципы ООП в Java простыми словами.
Наследование, инкапсуляция, полиморфизм, абстракция.
Суть наследования состоит в том, что один объект может наследовать свойства другого объекта, а также иметь свои собственные.
Полиморфизм заключается в том, что один и тот же метод может работать по-разному в зависимости от объекта, где он вызван, и данных, которые ему передали.
Инкапсуляция же подразумевает, что вся информация, которая нужна для работы конкретного объекта, должна храниться внутри этого объекта. Для внешних объектов доступны только публичные атрибуты и методы.
Не так давно начали выделять Абстракцию — это выделение общих характеристик объектов, их свойств и методов, при игнорировании деталей реализации.
✅ JavaStart. Подписаться
Наследование, инкапсуляция, полиморфизм, абстракция.
Суть наследования состоит в том, что один объект может наследовать свойства другого объекта, а также иметь свои собственные.
Полиморфизм заключается в том, что один и тот же метод может работать по-разному в зависимости от объекта, где он вызван, и данных, которые ему передали.
Инкапсуляция же подразумевает, что вся информация, которая нужна для работы конкретного объекта, должна храниться внутри этого объекта. Для внешних объектов доступны только публичные атрибуты и методы.
Не так давно начали выделять Абстракцию — это выделение общих характеристик объектов, их свойств и методов, при игнорировании деталей реализации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что добавило в язык использование record (Java 14+) по сравнению с обычным классом?
Anonymous Quiz
3%
Наследование от другого класса
50%
Автоматически генерируемые equals, hashCode, toString
11%
Возможность анонимных внутренних классов
16%
Поддержку множественного наследования с implements
20%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Наследование в Java простыми словами. Часть 1.
Наследование в Java — механизм, который позволяет одному классу получить все элементы и свойства другого класса. Этот процесс также называют расширением, преобразованием или отношением «родитель-потомок».
Основные обозначения:
Суперкласс (родитель) — основной класс, от которого принимаются все элементы.
Подкласс (расширенный, дочерний) — класс, который преобразовывается от другого класса, при этом может иметь свои элементы.
Зачем применяют наследование в Java?
Суть в том, что можно образовать новые классы, используя уже имеющийся код. При этом есть возможность добавить другие переменные в дочерний класс, получив при этом новый.
Синтаксис на Картинке.
Ключевое слово extends означает, что создается новый класс от уже имеющегося. Новый класс наследует имеющийся.
Из примера видно, что класс Apple создается из Fruit, при этом наследуются все его элементы. Так, Fruit — это класс-родитель, а Apple — класс-потомок.
✅ JavaStart. Подписаться
Наследование в Java — механизм, который позволяет одному классу получить все элементы и свойства другого класса. Этот процесс также называют расширением, преобразованием или отношением «родитель-потомок».
Основные обозначения:
Суперкласс (родитель) — основной класс, от которого принимаются все элементы.
Подкласс (расширенный, дочерний) — класс, который преобразовывается от другого класса, при этом может иметь свои элементы.
Зачем применяют наследование в Java?
Суть в том, что можно образовать новые классы, используя уже имеющийся код. При этом есть возможность добавить другие переменные в дочерний класс, получив при этом новый.
Синтаксис на Картинке.
Ключевое слово extends означает, что создается новый класс от уже имеющегося. Новый класс наследует имеющийся.
Из примера видно, что класс Apple создается из Fruit, при этом наследуются все его элементы. Так, Fruit — это класс-родитель, а Apple — класс-потомок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что означает аннотация @FunctionalInterface?
Anonymous Quiz
69%
Гарантирует наличие ровно одного абстрактного метода
5%
Позволяет компилятору автогенерировать реализацию
11%
Делает интерфейс сериализуемым
5%
Запрещает использование лямбд
11%
Посмотреть ответ
Наследование в Java простыми словами. Часть 2.
Правила наследования. Обращение к методу родителя с помощью ключевого слова super.
Чтобы обратиться к методу родителя, нужно использовать ключевое слово super.
Давайте посмотрим на пример на Картинке. У нас есть класс Pet c public методом walk, который ничего не возвращает (void), но при этом выводит в консоль "I will walk".
Наследуемся от класса Pet классом Cow (корова). У коровы есть свой метод void moo(), который просто выводит в консоль “I will moo”.
Теперь создадим метод cowWalk(), а в нем вызовем уже существующий метод в классе Pet – void walk(), который выводит “I will walk”. Вызываем этот метод мы через ключевое слово super.
Таким образом класс наследник можно дополнять своими методами, а также иметь уже готовые методы от класса родителя.
✅ JavaStart. Подписаться
Правила наследования. Обращение к методу родителя с помощью ключевого слова super.
Чтобы обратиться к методу родителя, нужно использовать ключевое слово super.
Давайте посмотрим на пример на Картинке. У нас есть класс Pet c public методом walk, который ничего не возвращает (void), но при этом выводит в консоль "I will walk".
Наследуемся от класса Pet классом Cow (корова). У коровы есть свой метод void moo(), который просто выводит в консоль “I will moo”.
Теперь создадим метод cowWalk(), а в нем вызовем уже существующий метод в классе Pet – void walk(), который выводит “I will walk”. Вызываем этот метод мы через ключевое слово super.
Таким образом класс наследник можно дополнять своими методами, а также иметь уже готовые методы от класса родителя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Наследование в Java простыми словами. Часть 3.
Получение доступа к защищенным (protected) элементам и методам.
Если protected (защищен) стоит перед элементами и методами — это указание на то, что к ним можно обратиться из производного класса.
Как видно из примера на Картинке, у нас есть основной класс — Pet — с защищенными name и display. Также есть класс Kitty, который наследуется от класса Pet.
Чтобы обойти эту защиту, мы создали новый объект small класса Kitty и получили необходимый доступ к защищенному полю name и защищенному методу display класса Pet.
Частый вопрос с собеседований.
✅ JavaStart. Подписаться
Получение доступа к защищенным (protected) элементам и методам.
Если protected (защищен) стоит перед элементами и методами — это указание на то, что к ним можно обратиться из производного класса.
Как видно из примера на Картинке, у нас есть основной класс — Pet — с защищенными name и display. Также есть класс Kitty, который наследуется от класса Pet.
Чтобы обойти эту защиту, мы создали новый объект small класса Kitty и получили необходимый доступ к защищенному полю name и защищенному методу display класса Pet.
Частый вопрос с собеседований.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой алгоритм безопасности чаще всего применяют для шифрования паролей перед хранением?
Anonymous Quiz
27%
Base64
8%
MD5 без «соли»
48%
BCrypt (с солью и адаптивной сложностью)
6%
CRC-32
11%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой модуль поставляется с JDK и поддерживает работу с JSON без сторонних библиотек?
Anonymous Quiz
13%
java.json
4%
java.datatransfer
48%
В стандартном наборе такого модуля нет
29%
javax.json
7%
Посмотреть ответ
Наследование в Java простыми словами. Часть 4.
В Java наследовать можно всего один класс, иными словами - в Java нет многократного наследования, оно возможно только от одного суперкласса.
ОШИБКА:
public class X extends Pet, Сow, Cat {
}
Наследуется все, кроме приватных переменных и методов.
В Java модификатор private сообщает о том, что классы-наследники не получат от родителя элементы с таким обозначением. Если вы попробуете произвести extends, компилятор выдаст ошибку.
Как переделать метод класса-родителя?
Override (переопределение) - мощный инструмент, который применяется, когда необходимо изменить или переопределить реализацию метода, полученного от суперкласса.
class Cow extends Pet{
@Override
public void walk (){
System.out.println ("I will run");
}
Важные моменты при использовании @Override:
– Переопределить можно только унаследованные методы;
– Название и параметры метода в родителе и наследнике – одинаковые;
– Методы с обозначением private не переопределяются.
✅ JavaStart. Подписаться
В Java наследовать можно всего один класс, иными словами - в Java нет многократного наследования, оно возможно только от одного суперкласса.
ОШИБКА:
public class X extends Pet, Сow, Cat {
}
Наследуется все, кроме приватных переменных и методов.
В Java модификатор private сообщает о том, что классы-наследники не получат от родителя элементы с таким обозначением. Если вы попробуете произвести extends, компилятор выдаст ошибку.
Как переделать метод класса-родителя?
Override (переопределение) - мощный инструмент, который применяется, когда необходимо изменить или переопределить реализацию метода, полученного от суперкласса.
class Cow extends Pet{
@Override
public void walk (){
System.out.println ("I will run");
}
Важные моменты при использовании @Override:
– Переопределить можно только унаследованные методы;
– Название и параметры метода в родителе и наследнике – одинаковые;
– Методы с обозначением private не переопределяются.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM