Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
// построить один стек из другого стека
Stack(Stack ob) {
tos = ob.tos;
stck = new char[ob.stck.length];
// скопировать элементы
for(int i=0; i < tos; i++)
stck[i] = ob.stck[i];
}
// построить стек с исходными значениями
Stack(char а[]) {
stck = new char[a.length];
for(int i = 0; i < a.length; i++) {
push(a[i]);
}
}
// поместить символы в стек
void push(char ch) {
if(tos==stck.length) {
System.out.println(" — Stack is full.");
return;
}
stck[tos] = ch;
tos++;
}
// извлечь символы из стека
char pop() {
if(tos==0) {
System.out.println(" — Stack is empty.");
return (char) 0;
}
tos—;
return stck[tos];
}
}
// продемонстрировать применение класса Stack
class SDemo {
public static void main(String args[]) {
// создать пустой стек на 10 элементов
Stack stkl = new Stack(lO);
char name[] = {'T1, 'o', 'm'};
// построить стек из массива
Stack stk2 = new Stack(name);
char ch;
int i;
// поместить символы в стек stkl
for(i=0; i < 10; i++)
stkl.push((char) ('A' + i));
// построить один стек из другого стека
Stack stk3 = new Stack(stkl);
// отобразить стеки
System.out.print("Contents of stkl: ");
for(i=0; i < 10; i++) {
ch = stkl.pop();
System.out.print(ch);
}
System.out.println("\n");
System.out.print("Contents of stk2: ");
for(i=0; i < 3; i++) {
ch = stk2.pop();
System.out.print(ch);
}
System.out.println("\n");
System.out.print("Contents of stk3: ");
for(i=0; i < 10; i++) {
ch = stk3.pop();
System.out.print(ch);
}
}
}
Ниже приведен результат выполнения данной программы.
Contents of stkl: JIHGFEDCBA
Contents of stk2: moT
Contents of stk3: JIHGFEDCBA
Допустим, имеется следующий класс:
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.
Для чего может понадобиться статический блок?
Статический блок служит для выполнения любых инициализирующих действий в
классе до создания конкретных объектов.
Что такое внутренний класс?
Внутренний класс — это нестатический вложенный класс.