
- •Глава 2
- •Глава 2. Обзор языка Java 31_
- •Глава 2. Обзор языка Java
- •Глава 2. Обзор языка Java 37
- •Глава 2. Обзор языка Java 39
- •Глава 2. Обзор языка Java 41
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 43_
- •Глава 2. Обзор языка Java 45_
- •Глава 2. Обзор языка Java 47
- •Глава 2. Обзор языка Java 49_
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 57
- •Глава 3
- •Глава 3. Типы данных, переменные и массивы 53
- •Глава 3. Типы данных, переменные и массивы _ 55
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 59_
- •Глава 3. Типы данных, переменные и массивы 61_
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 65_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 67_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 69_
- •Глава 3. Типы данных, переменные и массивы 71_
- •Глава 3. Типы данных, переменные и массивы 73_
- •Глава 3. Типы данных, переменные и массивы
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы _ 77_ Эта программа генерирует следующий вывод:
- •Глава 3. Типы данных, переменные и массивы 79
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 81_
- •Глава 4
- •Глава 4. Операции 83
- •84 Часть I. Язык Java
- •Глава 4. Операции 85_
- •Глава 4. Операции 87_
- •88_ Часть I. Язык Java
- •Глава 4. Операции 89
- •Глава 4. Операции 91_
- •Глава 4. Операции 93_
- •Глава 4. Операции 95_
- •Глава 4. Операции 97_
- •Глава 4. Операции 99
- •Глава 4. Операции 101
- •Глава 4. Операции 103
- •104 Часть I, Язык Java
- •Глава 4. Операции 105
- •Глава 5
- •Глава 5, Управляющие операторы 107
- •Глава 5. Управляющие операторы 109
- •110 Часть I. Язык Java
- •Глава 5, Управляющие операторы 111
- •Глава 5. Управляющие операторы 113
- •Глава 5. Управляющие операторы
- •Глава 5. Управляющие операторы 117
- •118 Часть I. Язык Java
- •Глава 5. Управляющие операторы 119
- •Глава 5. Управляющие операторы 121
- •122 Часть I. Язык Java
- •Глава 5. Управляющие операторы 123
- •Глава 5. Управляющие операторы 125
- •Глава 5. Управляющие операторы 127
- •Глава 5. Управляющие операторы 129
- •Глава 5. Управляющие операторы
- •Глава 6
- •134 Часть I. Язык Java
- •Глава 6. Введение в классы 135
- •136 Часть I. Язык Java
- •Глава 6. Введение в классы _ 137
- •Глава 6. Введение в классы 139
- •Глава 6. Введение в классы
- •Глава 6. Введение в классы 143
- •Глава 6. Введение в классы 145
- •Глава 6. Введение в классы 147
- •Глава 6. Введение в классы 149
- •Глава 6. Введение в классы 151
- •154 Часть I. Язык Java
- •Глава 6. Введение в классы 155
- •Глава 6. Введение в классы 157
- •Глава 7
- •Глава 7. Методы и классы 159
- •Глава 7. Методы и классы . 161
- •Глава 7. Методы и классы • 163
- •164 Часть I. Язык Java
- •Глава 7. Методы и классы 165
- •Глава 7. Методы и классы 167
- •Глава 7. Методы и классы 169
- •Глава 7, Методы и классы 171-
- •Глава 7. Методы и классы 173
- •Глава 7. Методы и классы 775
- •Глава 7. Методы и классы 177
- •Глава 7. Методы и классы ' 179
- •Глава 7. Методы и классы 1_81_
- •Глава 7. Методы и классы 1_83
- •184 '• Часть I. Язык Java
- •Глава 7. Методы и классы . 185
- •Глава 7. Методы и классы 187
- •Глава 8
- •Глава 8. Наследование 191
- •Глава 8. Наследование 193
- •Глава 8, Наследование 195
- •Глава 8. Наследование 197
- •198 Часть I. Язык Java
- •Глава 8, Наследование 199
- •Глава 8. Наследование 201
- •202 Часть I. Язык Java
- •Глава 8. Наследование 203
- •Глава 8. Наследование 205
- •Глава 8. Наследование 207
- •Глава 8. Наследование 209
- •Глава 8. Наследование 211
- •Глава 8. Наследование 213
- •Глава 8. Наследование 215
- •Глава 8. Наследование 217
- •Глава 12
- •Глава 12. Ввод/вывод, апплеты и другие темы 303_
- •Глава 12. Ввод/вывод, апплеты и другие темы . 305
- •Глава 12. Ввод/вывод, алплеты и другие темы 307
- •Глава 12. Ввод/вывод, апплеты и другие темы 309
- •Глава 12. Ввод/вывод, апплеты и другие темы 311
- •Глава 12. Ввод/вывод, апплаты и другие темы 313
- •314 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 315
- •Глава 12. Ввод/вывод, апплеты и другие темы 317
- •Глава 12. Ввод/вывод, апплеты и другие темы 319
- •320 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 321
- •Глава 12. Ввод/вывод, апплеты и другие темы 323
- •324 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 325
- •326 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплегы и другие темы 327
Глава 7. Методы и классы 187
String strObl = "Первая строка"; String strOb2 = "Вторая строка"; String strOb3 = strObl;
System.out.printIn("Длина strObl: " + strObl. length ());
System.out.println("Символ с индексом 3 в strObl: " + strObl.charAt(3));
if(strObl.equals(strOb2))
System.out.println("strObl == strOb2"); else
System.out.println("strObl != strOb2");
if(strObl.equals(strOb3))
System.out.println("strObl == strOb3"); else
System.out.println("strObl != strObS"); } }
Эта программа генерирует следующий вывод:
Длина strObl: 12
Символ с индексом 3 в strObl: в
strObl != strOb2
strObl == strOb3
Можно, конечно, создавать и массивы строк, аналогично тому, как создаются массивы любого другого типа объектов. Например:
// Демонстрирует String-массивы, class StringDemoB {
public static void main(String args[]) { String str[] = { "один", "два", "три" };
forfint i=0; i<str.length; i++)
System.out.println("str[" + i + "]: " + str[i]); ) }
Вывод этой программы:
str [0] : один str [1] : два str [2] : три
Как вы увидите в следующем разделе, массивы строк играют важную роль во многих Java-программах.
188 Часть I. Язык Java
Использование аргументов командной строки
Иногда нужно переслать информацию в программу во время ее выполнения. Это делается пересылкой аргументов командной строки методу main(). Аргументы командной строки — это информация, которая следует непосредственно за именем программы в командной строке, используемой для запуска программы. Обращаться к аргументам командной строки внутри Java-программы весьма просто — они сохраняются как строки в string-массиве. пересылаемом в maino. Например, следующая программа отображает, все аргументы командной строки, с которыми она вызывается:
// Показать все аргументы командной строки, class CommandLine {
public static void main(String args[]) { forfint i=0; i<args.length; i++)
System.out.println("args[" + i + "]: " + args[i]); } }
Попытайтесь выполнить эту программу (после ее компиляции), запустив интерпретатор Java, как показано в следующей командной строке:
Java CoramandLine это тест к программе 100 -1
После этого должен появиться такой вывод:
args[0] это
args[1] тест
args[2] к
args[3] программе
args[4] 100
args[5] -1
Все аргументы командной строки пересылаются как строки. Вы должны преобразовать числовые значения к их внутренним формам вручную (см. гл. 14).
Глава 8
Наследование
Наследование — один из краеугольных камней объектно-ориентированного программирования, потому что оно позволяет создавать иерархические классификации. Используя наследование, можно создать главный класс, который определяет свойства, общие для набора связанных элементов. Затем этот класс может быть унаследован другими, более специфическими классами, каждый из которых добавляет те свойства, которые являются уникальными для него. В терминологии Java класс, который унаследован, называется суперклассом (superclass). Класс, который выполняет наследование, называется подклассом (subclass). Поэтому подкласс — это специализированная версия суперкласса. Он наследует все переменные экземпляра и методы, определенные суперклассом, и прибавляет свои собственные уникальные элементы.
Основы наследования
Чтобы наследовать класс, нужно просто включить определение одного класса в другое, используя ключевое слово extends. Чтобы увидеть, как это делается, начнем с короткого примера. Следующая программа создает суперкласс с именем а и подкласс с именем в. Обратите внимание, как используется ключевое слово extends, чтобы создать подкласс а.
// Простой пример наследования.
// Создать суперкласс, class A { int i, j;
void showij () {
System.out.println("i и j: " + i + " " + j); } }
I до Часть I. Язык Java
II Создать подкласс расширением класса А. class В extends A {
int k;
void showk() {
System.out.println("k: " + k); } void 3um() {
System.out.println("i+j+k: " + (i+j+k)); } }
class Simplelnheritance {
public static void main(String args[]) { A superOb = new A(); В subOb = new В() ;
// Суперкласс может быть использован сам по себе.
superOb.i = 10;
superOb.j = 20;
System.out.println("Содержимое superOb: ");
superOb.showij() ;
System.out.println() ;
/* Подкласс имеет доступ ко всем public-членам
его суперкласса. */ subOb.i = 7; subOb. j = 8; subOb.k = 9;
System.out.println("Содержимое of subOb: "}; subOb.showij(); subOb.showk(); System, out.println();
System.out.println("Сумма i, j и k в subOb:"}; subOb.sumO ; } }
Подкласс в включает все члены его суперкласса д. Вот почему объект зиьоь может обращаться к i и j и вызывать showijo. Поэтому же внутри sum о можно прямо ссылаться на i и j, как если бы они были частью в.
Хотя а — суперкласс для в, он тоже полностью независимый, автономный класс. Роль суперкласса для некоторого подкласса не означает, что этот суперкласс не может использоваться сам по себе. Более того, подкласс может быть суперклассом для другого подкласса.