ООП Kotlin
Список вопросов теста
Вопрос 1
Объе́ктно-ориенти́рованное программи́рование (ООП)
Варианты ответов
- это механизм, позволяющий скрыть код класса (поля, методы, функции) и ограничить доступ к коду и данным из других участков кода
- методология программирования, основанная на представлении программы в виде совокупности объектов,
- это механизм, позволяющий классу наследовать свойства другого класса, принимая все поля и функции членов базового типа.
- это свойство, которое позволяет использовать один интерфейс для общего класса действий. Эта концепция часто выражается как "один интерфейс, несколько действий".
Вопрос 2
Инкапсуляция
Варианты ответов
- это механизм, позволяющий скрыть код класса (поля, методы, функции) и ограничить доступ к коду и данным из других участков кода
- методология программирования, основанная на представлении программы в виде совокупности объектов,
- это механизм, позволяющий классу наследовать свойства другого класса, принимая все поля и функции членов базового типа.
- это свойство, которое позволяет использовать один интерфейс для общего класса действий. Эта концепция часто выражается как "один интерфейс, несколько действий".
Вопрос 3
Наследование
Варианты ответов
- это механизм, позволяющий скрыть код класса (поля, методы, функции) и ограничить доступ к коду и данным из других участков кода
- методология программирования, основанная на представлении программы в виде совокупности объектов,
- это механизм, позволяющий классу наследовать свойства другого класса, принимая все поля и функции членов базового типа.
- это свойство, которое позволяет использовать один интерфейс для общего класса действий. Эта концепция часто выражается как "один интерфейс, несколько действий".
Вопрос 4
Полиморфизм
Варианты ответов
- это механизм, позволяющий скрыть код класса (поля, методы, функции) и ограничить доступ к коду и данным из других участков кода
- методология программирования, основанная на представлении программы в виде совокупности объектов,
- это механизм, позволяющий классу наследовать свойства другого класса, принимая все поля и функции членов базового типа.
- это свойство, которое позволяет использовать один интерфейс для общего класса действий. Эта концепция часто выражается как "один интерфейс, несколько действий".
Вопрос 5
Представим, что у нас есть экземпляр класса Car и мы отдаем ему сигнал отвезти нас на работу. Это выглядит примерно так:
val car = Car() car.rideTo("Lenina 40")
Варианты ответов
- Наследование
- Полиморфизм
- Инкапсуляция
- Модификация
Вопрос 6
У нас есть класс Cat. У него есть метод hunt(), который позволяет коту охотиться на мышей. Метод выглядит примерно так:
fun hunt() {
print("Я охочусь на мышей, ведь я кот!") }
На основе класса Cat мы можем создать класс HomeCat - домашний кот, и в нем мы можем переопределить метод hunt():
override fun hunt() {
print("Ты че сдурел? Какие мыши? Иди корми меня, ленивая задница!") }
Варианты ответов
- Наследование
- Полиморфизм
- Инкапсуляция
- Модификация
Вопрос 7
Предположим, что у нас есть класс MusicalInstrument, имеющий один-единственный метод play() и три других класса: Guitar, Piano и Flute, наследующих его и переопределяющих его методы. Создадим следующую функцию:
fun playMusic(i: MusicalInstrument){
i.play() }
Мы можем передать этой функции объекты типа Guitar, Piano и Flute, ведь они все по сути являются музыкальными инструментами, хоть и реализуют метод play по-разному, например, гитара делает трын трын, пианино - тын-тын, а флейта - фью-фью.
Варианты ответов
- Наследование
- Полиморфизм
- Инкапсуляция
- Модификация
Вопрос 8
Модификаторы доступа - Это ключевые слова, позволяющие ограничить доступ к классам, объектам, интерфейсам, конструкторам, функциям, свойствам и сеттерам
1.
public
2.
private
3.
protected
4.
internal
Варианты ответов
- то, что помечено таким модификатором, будет видно всегда и везде, даже из сторонней библиотеки
- видимость только внутри класса
- видимость только внутри класса и классов, наследующих его.
- видно внутри модуля. Модуль - это набор скомпилированных вместе kotlin-файлов, о них нам говорить ещё рано.
Вопрос 9
Классы в Kotlin объявляются с помощью
[mod] { <name> [constructor] } class
1 2 3 4 5 6
Расставьте элементы класса в правильном порядке
Варианты ответов
- 1
- 6
- 3
- 4
- 2
- 5
Вопрос 10
Что должно получится в результате выполнения кода программы
pen class Animal {
open fun makeSound() {
println("Какой-то звук")
}
}
class Dog : Animal() {
override fun makeSound() {
println("Гав-гав!")
}
}
class Cat : Animal() {
override fun makeSound() {
println("Мяу!")
}
}
fun main() {
val animals = listOf(Dog(), Cat())
for (animal in animals) {
animal.makeSound()
}
}
Варианты ответов
- "Гав-гав!"
- "Мяу!"
- "Мяу!""Гав-гав!"
- "Гав!-Мяу!"


