- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Java: руководство для начинающих (ЛП) - Шилдт Герберт
Шрифт:
Интервал:
Закладка:
Допустим, имеется следующий класс:class Test {int a;Test(int i) { a = i; }}Напишите метод swap (), реализующий обмен содержимым между двумя объектамитипа Test, на которые ссылаются две переменные данного типа.void swap(Test obi, Test ob2) {int t;t = obi.a;obi.a = ob2.a;ob2.a = t;}
Правильно ли написан следующий фрагмент кода?class X {int meth(int a, int b) { ... }String meth(int a, int b) { ... }Нет, неправильно. Перегружаемые методы могут возвращать значения разного типа,но это не играет никакой роли для определения подобных методов во время их перегрузки. Перегружаемые методы должны иметь в своих списках разнотипные параметры.
Напишите рекурсивный метод, отображающий строку задом наперед.// Отображение строки задом наперед с помощью рекурсии,class Backwards {String str;Backwards(String s) {str = s;}void backward(int idx) {if(idx != str.length()-1) backward(idx+1);System.out.print(str.charAt(idx) ) ;}}class BWDemo {public static void main(String args[]) {Backwards s = new Backwards("This is a test");s.backward(0);}}
Допустим, что все объекты класса должны совместно пользоваться одной и той жепеременной. Как объявить такую переменную?Переменная, предназначенная для совместного использования, должна быть объявлена как static.
Для чего может понадобиться статический блок?Статический блок служит для выполнения любых инициализирующих действий вклассе до создания конкретных объектов.
Что такое внутренний класс?Внутренний класс — это нестатический вложенный класс.
Допустим, требуется член класса, к которому могут обращаться только другие членыэтого же класса. Какой модификатор доступа следует использовать в его объявлении?Модификатор доступа private.
Имя метода и список его параметров вместе составляют метода.сигнатуру
Если методу передается значение типа int, то в этом случае используется передачапараметра по .значению
Создайте метод sum () с аргументами переменной длины для суммирования передаваемых ему значений типа int. Метод должен возвращать результат суммирования.Продемонстрируйте его в действии.Существует много вариантов решения данной задачи. Ниже представлен один из них.Приложение А. Ответы на вопросы для самопроверки 571class Sumlt {int sum(int ... n) {int result = 0;for(int i = 0; i < n.length; i++)result += n[i];return result;}}class SumDemo {public static Void main(String args[]) {Sumlt siObj = new Sumlt();int total = siObj.sum(l, 2, 3);System.out .println (1,Sum is " + total);total = siObj.sum(l, 2, 3, 4, 5);System.out.println("Sum is " + total);}}
Можно ли перегружать метод с аргументами переменной длины?Да, можно.
Приведите пример неоднозначного вызова перегружаемого метода с переменнымчислом аргументов.Ниже приведен один из вариантов перегружаемого метода с переменным числом аргументов, при вызове которого проявляется неоднозначность.double myMeth(double ... v ) { // ...double myMeth(double d, double ... v) { // ...Если попытаться вызвать метод myMeth () с одним аргументом следующим образом:myMeth(1.1);то компилятор не сможет определить, какой именно метод вызывается.Глава 7. Наследование
Имеет ли суперкласс доступ к членам подкласса? Имеет ли подкласс доступ к членам суперкласса?Нет, не имеет. Суперклассу ничего не известно о существовании подклассов.Подклассы действительно могут обращаться ко всем членам суперкласса, кроме тех,которые объявлены как закрытые (private).
Создайте подкласс Circle, производный от класса TwoDShape. В нем долженбыть определен метод area (), вычисляющий площадь круга, а также конструкторс ключевым словом super для инициализации членов, унаследованных от классаTwoDShape.// Подкласс, производный от класса TwoDShape для формы круга,class Circle extends TwoDShape {// Конструктор по умолчаниюCircle () {super();}// Конструктор класса CircleCircle(double х) {super(x, "circle"); // вызвать конструктор суперкласса}// создать новый объект из имеющегося объектаCircle(Circle ob) {super(ob); // передать объект конструктору класса ?PwoDShape}double area () {return (getWidth() /2) (getWidth() / 2) 3.1416;}}
Как предотвратить обращение к членам суперкласса из подкласса?Для того чтобы предотвратить доступ к членам суперкласса из подкласса, эти членыследует объявить как закрытые (private).
Опишите назначение и два варианта использования ключевого слова super.Ключевое слово super используется в двух случаях. Во-первых, с его помощью вызывается конструктор суперкласса. В этом случае общая форма вызова имеет следующий вид:super (списокпараметров) ;И во-вторых, это ключевое слово обеспечивает доступ к членам суперкласса. Нижеприведена общая форма такого доступа.super.членкласса
Допустим, имеется следующая иерархия классов:class Alpha { ...class Beta extends Alpha { ...Class Gamma extends Beta { ...В каком порядке вызываются конструкторы этих классов при создании объектакласса Gamma?Конструкторы всегда вызываются в порядке наследования. Таким образом, присоздании экземпляра класса Gamma будет сначала вызван конструктор Alpha, затемBeta и, наконец, Gamma.
Переменная ссылки на суперкласс может указывать на объект подкласса. Объясните,почему это важно и как это связано с переопределением методов?Когда переопределяемый метод вызывается по ссылке на суперкласс, его вариантопределяется по типу объекта, на который делается ссылка.
Что такое абстрактный класс?Приложение А. Ответы на вопросы для самопроверки 573Абстрактным называется такой класс, который содержит хотя бы один абстрактныйметод.
Как предотвратить переопределение метода? И как предотвратить наследованиекласса?Для того чтобы метод нельзя было переопределить, его нужно объявить как final.А для того чтобы предотвратить наследование от класса, его следует объявить какfinal.
Объясните, каким образом механизмы наследования, переопределения методов иабстрактные классы используются для поддержки полиморфизма.Наследование, переопределение методов и абстрактные классы поддерживают полиморфизм и позволяют создать обобщенную структуру, реализуемую различнымиклассами. Так, абстрактный класс определяет согласованный интерфейс, общий длявсех реализующих его классов. Такой подход соответствует принципу “один интерфейс — множество методов”.
Какой класс является суперклассом всех остальных классов?Класс Object.П. Класс, который содержит хотя бы один абстрактный метод, должен быть объявленабстрактным. Верно или не верно?Верно.
Какое ключевое слово следует использовать для создания именованной константы?Ключевое слово final.Глава 8. Пакеты и интерфейсы
Используя код, созданный в примере для опробования 8.1, поместите в пакет qpackинтерфейс ICharQ и все три реализующие его класса. Класс IQDemo должен остаться в пакете, используемом по умолчанию. Покажите, как импортировать и использовать классы из пакета qpack.Для того чтобы включить интерфейс ICharQ и реализующие его классы в пакетqpack, следует поместить каждый из них в отдельный файл, объявить все классы,реализующие данный интерфейс, как public, а в начале каждого файла ввести следующий оператор:package qpack;После этого можно воспользоваться пакетом qpack, добавив в интерфейс IQDemoследующий оператор import:import qpack.*;
Что такое пространство имен? Почему так важна возможность его разделения на отдельные области в Java?Пространство имен — это область объявлений. Разделяя пространство имен на отдельные области, можно предотвратить конфликты имен.
Содержимое пакетов хранится в .каталогах
В чем отличие доступа, определяемого ключевым словом protected, от доступа поумолчанию?Член класса с доступом типа protected может быть использован в пределах текущего пакета, а также в подклассах данного класса, относящихся к любому пакету.А член класса с доступом по умолчанию может быть использован только в пределахтекущего пакета.
Допустим, классы, содержащиеся в одном пакете, требуется использовать в другомпакете. Какими двумя способами можно этого добиться?Для того чтобы воспользоваться членом пакета, нужно указать его имя полностьюили же импортировать этот член с помощью оператора import.

