Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Это задание имеет следующее решение:
class FlightSched {
Измените ваш ответ на вопрос 3 таким образом, чтобы второй параметр типа обозначал подкласс, производный от класса Thread.
Это задание имеет следующее решение:
class FlightSched {
Внесите изменения в класс FlightSched таким образом, чтобы второй параметр
типа стал подклассом первого параметра типа.
Это задание имеет следующее решение:
class FlightSchedCT, V extends Т> {
Что обозначает знак ? в обобщениях?
Знак ? обозначает метасимвольный аргумент, который соответствует любому допустимому типу.
Может ли метасимвольный аргумент быть ограниченным?
Да. Метасимвольный аргумент может ограничиваться как сверху, так и снизу.
У обобщенного метода My Gen () имеется один параметр типа, определяющий тип
передаваемого ему аргумента. Этот метод возвращает также объект, тип которого соответствует параметру типа. Как должен быть объявлен метод MyGen () ?
Это задание имеет следующее решение:
<Т> Т MyGen(Т о) {//.. .
Допустим, обобщенный интерфейс объявлен так, как показано ниже,
interface IGenlFCT, V extends Т> { // ...
Составьте объявление класса MyClass, который реализует интерфейс I Gen IF.
Это задание имеет следующее решение:
class MyClass implements IGenlFCT, V> { // ...
Допустим, имеется обобщенный класс Counter. Как создать объект его базового
типа?
Для того чтобы получить базовый тип из обобщенного класса Counter, достаточно указать его имя, не обозначая тип, как показано ниже.
Counter х = new Counter;
588 Java 7r руководство для начинающих, 5-е издание
Существуют ли параметры типа на стадии выполнения программы?
Нет. Все параметры типа удаляются на стадии компиляции и заменяются соответствующими приводимыми типами. Этот процесс называется стиранием.
Видоизмените ответ на вопрос 10 в упражнении по материалу главы 9 таким образом, чтобы сделать класс обобщенным. По ходу дела создайте интерфейс стека
IGenStack, объявив в нем обобщенные методы push () и pop ().
// Обобщенный стек.
interface IGenStack {
void push(T obj) throws StackFullException;
T pop() throws StackEmptyException;
}
// Исключение, возникающее при переполнении стека,
class StackFullException extends Exception {
int size;
StackFullException(int s) { size = s; }
public String toString() {
return "\nStack is full. Maximum size is " + size;
}
}
// Исключение, возникающее при обращении к пустому стеку,
class StackEmptyException extends Exception {
public String toString() {
return "\nStack is empty.”;
}
}
// Класс, реализующий стек для хранения объектов обобщенного типа,
class GenStack implements IGenStack {
private T stck[]; // Массив для хранения элементов стека
private int tos; // Вершина стека
// построить пустой стек заданного размера
GenStack(T[] stckArray) {
stck = stckArray;
tos = 0;
}
// построить один стек из другого стека
GenStack(T[] stckArray, GenStack ob) {
tos = ob.tos;
stck = stckArray;
try {
Приложение А. Ответы на вопросы для самопроверки 589
if(stck.length < ob.stck.length)
throw new StackFullException(stck.length);
}
catch(StackFullException exc) {
System.out.println(exc);
}
// скопировать элементы
for(int i=0; i < tos; i++) >
stck[i] = ob.stck[i];
}
// построить стек с исходными значениями
GenStack(T[] stckArray, Т[] а) {
stck = stckArray;
for(int i = 0; i < a.length; i++) {
try {
push(a [i]);
}
catch(StackFullException exc) {
System.out.println(exc);
}
}
}





