- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 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.