Java | Вопросы собесов
11.4K subscribers
31 photos
2 videos
1.2K links
Download Telegram
Что такое ООП ?
Спросят с вероятностью 81%

Объектно-ориентированное программирование (ООП) — это парадигма, основанная на концепции "объектов", которые могут содержать данные в виде полей (часто называемых атрибутами или свойствами) и код в виде процедур (часто называемых методами). ООП фокусируется на использовании объектов для моделирования реальных или абстрактных сущностей, интересующих в процессе разработки программного обеспечения, облегчая тем самым разработку и поддержку программ.

Основные принципы:

1️⃣ Инкапсуляция — это сокрытие внутренних деталей реализации объекта от внешнего мира. Только сам объект управляет своим состоянием, внешние объекты взаимодействуют с ним через методы. Это позволяет упростить интерфейсы взаимодействия между компонентами и улучшить модульность.

2️⃣ Наследование — механизм, с помощью которого один класс (дочерний класс) может наследовать свойства и методы другого класса (родительского класса), потенциально переопределяя некоторые из них. Это способствует повторному использованию кода и иерархической организации классов.

3️⃣ Полиморфизм — способность объектов с одинаковым интерфейсом предоставлять различную реализацию. Это позволяет одному и тому же коду работать с объектами разных типов.

4️⃣ Абстракция — процесс выделения существенных характеристик объекта, исключая несущественные. Это помогает сосредоточиться на том, что объект делает, а не на том, как он это делает.

Пример:
class Животное {
void есть() {
System.out.println("Животное ест");
}
}

class Кот extends Животное {
void есть() {
System.out.println("Кот ест рыбу");
}
}

public class Main {
public static void main(String[] args) {
Животное моеЖивотное = new Кот();
моеЖивотное.есть(); // Выведет "Кот ест рыбу", демонстрируя полиморфизм
}
}


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

Объектно-ориентированное программирование — это подход к разработке программ, который использует "объекты" — сущности с данными и методами для моделирования реального или абстрактного мира. Это помогает сделать код более модульным, легко расширяемым и поддерживаемым.

Примеры ответов
Список всех вопросов на Java Developer

🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🎉8🔥71😁1
В чем разница между checked и unchecked исключениями ?
Спросят с вероятностью 75%

Исключения (exceptions) важная часть обработки ошибок. Есть две основные категории: проверяемые (checked) и непроверяемые (unchecked).

Проверяемые исключения (Checked Exceptions):
Должны быть явно обработаны в коде с помощью блока try-catch или должны быть указаны в сигнатуре метода с помощью ключевого слова throws.
Они представляют ошибки, которые могут возникнуть во время выполнения программы и которые во многих случаях программист может предвидеть и обработать. Например, ошибка чтения файла, когда файл не существует.
Примеры классов проверяемых исключений включают IOException, FileNotFoundException, ClassNotFoundException и другие.

Пример:
try {
FileInputStream file = new FileInputStream("non_existent_file.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}


В этом примере FileNotFoundException является проверяемым исключением, и его необходимо обрабатывать в блоке try-catch.

Непроверяемые исключения (Unchecked Exceptions):
Не требуют обязательной обработки в коде. Они обычно возникают из-за ошибок программирования, таких как деление на ноль или доступ к элементу за пределами массива.
К ним относятся ошибки времени выполнения (RuntimeException) и ошибки (Error).
Примеры включают NullPointerException, IndexOutOfBoundsException, ArithmeticException и другие.

Пример:
int result = 10 / 0; // Приводит к ArithmeticException


Здесь ArithmeticException является непроверяемым исключением, вызванным делением на ноль.

Почему разделение на checked и unchecked?
Разделение позволяет управлять потенциальными ошибками, которые могут быть исправлены, и отличать их от ошибок времени выполнения, которые чаще всего являются результатом ошибок в коде. Это способствует написанию более надежного и устойчивого к ошибкам кода.

Примеры ответов
Список всех вопросов на Java Developer

🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4