Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
развитие системы, добавление новых возможностей и изменение старых, помогают обеспечивать минимальную связность между частями системы, то есть повышают модульность. Также
ia4Hbie технические решения можно многократно использовать в различных системах, сокращая и упрощая процесс их создания.
Для достижения таких важных целей требуется не только знание java, но и владение объектно-ориентированным подходом, основными способами проектирования систем и проверки качества архитектурных решений. Платформа Java является основой и весьма удобным инструментом для применения всех этих технологий.
Заключение
В этой лекции были рассмотрены особенности объектной модели java. Это, во-первых, статические элементы, позволяющие использовать интерфейс класса без создания объектов. Нужно помнить, что, хотя дтя обращения к статическим элементам можно задействовать ссылочную переменную, на самом деле ее значение не используется, компилятор основывается только на ее типе.
Для правильной работы со статическими элементами вводятся понятия статического и динамического контекста.
Далее рассматривалось использование ключевых слов this и super. Выражение this предоставляет ссылку, указывающую на объект, в контексте которого оно встречается. Эта конструкция помогает избегать конфликтов имен, а также применяется в конструкторах.
Слово super позволяет задействовать свойства родительского класса, что необходимо для реализации переопределенных методов, а также в конструкторах.
Затем было введено понятие абстрактного метода и класса. Абстрактный метод не имеет тела, он лишь указывает, что метод с такой сигнатурой должен быть реализован в классе-наследнике. Поскольку °Я не имеет собственной реализации, классы с абстрактными метода-Ми также должны быть объявлены с модификатором abstract, который Указывает, что от них нельзя порождать объекты. Основная цель абстрактных методов — описать в родительском классе как можно больше °бщих свойств наследников, пусть даже и в виде заголовков методов без реализации.
Следующее важное понятие — особый тип в Java, интерфейс. Его еЩе называют полностью абстрактным классом, так как все его методы °бязательно абстрактные, а поля final static. Соответственно, на основе "^ерфейсов невозможно создавать объекты.
Интерфейсы являются альтернативой множественному наследова-Классы не могут иметь более одного родителя, но они могут реали-■^Вывать сколько угодно интерфейсов. Таким образом, интерфейсы опи
сывают общие свойства классов, не находящихся на одной ветви дерев- наследования. '
Наконец, важным свойством объектной модели является полимор. физм. Было подробно изучено поведение полей и методов, как статичес ких, так и динамических, при переопределении. Что позволило перейти к вопросу соответствия типов переменной и ее значения.
Вариант 1
^ Предположим, вы моделируете автомобиль, описывая его свойства в формате Java-класса. Какие из следующих полей нужно объявить динамическими?
Г*1 количество колес автомобиля
Г*1 необходимое количество колес, полагающееся по проектной документации
Q максимально допустимая масса для этого класса автомобилей
f*l максимально большое количество пассажиров, когда-либо одновременно перевозимых автомобилем
□ дата начала выпуска автомобилей
□ дата выпуска автомобиля
2. Можно ли при переопределении некоторого абстрактного метода perforino использовать выражение
super, perforino?
□ да П нет
3. Для каких элементов класса работает полиморфизм?
Г~1 динамические поля
П статические поля
П динамические методы
П статические методы
Вариант 2
1. Предположим, вы моделируете автомобиль, описывая его свойства в формате Java-класса. Какие из следующих полей нужно объявить статическими?
П количество колес автомобиля
П необходимое количество колес, полагающееся по проектной документации
П максимально допустимая масса для этого класса автомобилей
П максимально большое количество пассажиров, когда-либо одновременно перевозимых автомобилем
П дата начала выпуска автомобилей
П дата выпуска автомобиля
2. Можно ли при наследовании не реализовывать абстрактный метод родительского класса?
П можно
П можно, если наследник также abstract П нельзя
3. Может ли переменная иметь тип абстрактный класс? Интерфейс?
□ да, да
□ да, нет
□ нет, да
□ нет, нет
Вариант 3
1 Корректно ли следующее обращение к переменной X? public class Test {
static void performO {
}
private Test x;
public static void ma in (String s[]) {
x.perform(); // корректно ли это выражение?
}
}
□ да
□ нет
2. Если имеется переменная типа абстрактный класс, можно ли с ее помощью обращаться к абстрактным методам этого класса?
П можно
Г"| можно, но если ее значение будет равно null, то возникнет
ошибка времени исполнения О нельзя
Какое значение появится на консоли после выполнения следующей программы? public class Parent { int x = 2;
public void print() {
System. out. println(x) ;
}
public class Child extends Parent { intx = 3;
public static void main(String s[]) { ^ new Child().print();
}
□ 0
□ 2
□ 3