
- •Глава 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
Глава 3. Типы данных, переменные и массивы 79
for (i=0; i<4; i++) { for(j=0; j<4; j++)
System. out .print (m[i] [j] + " "); System. out .println ( ) ;
Когда вы выполните эту программу, то получите следующий вывод:
0.0 0.0 0.0 0.0 0.0 1.0 2.0 3.0 0.02.04.06.0 0.0 3.0 6.0 9.0
Как видите, каждая строка в массиве инициализирована, как указано в списках инициализации.
Рассмотрим еще один пример, который использует многомерный массив. Следующая программа создает трехмерный массив 3x4x5, затем заполняет каждый элемент произведением его индексов и, наконец, отображает эти значения на экран.
// Демонстрирует трехмерньм массив. class threeDMatrix {
public static void main (String args [] ) {
int threeD[] [] [] = new int [3] [4] [5] ;
int i, j, k;
for(i=0; i<3; i++) for(j=0; j<4; j++) for(k=0; k<5; k++) threeD[i] [j] [k] = i * j * k;
for(i=0; i<3; i++) ( for(j=0; j<4; j++) { for(k=0; k<5; k++)
System.out.print(threeD[i] [j] [k] + " "). System.out.println (); }
System.out.println(}; } } }
Эта программа генерирует следующий вывод:
00000 00000
Часть I. Язык Java
00000 00000
00000 01234 02468 О 3 б 9 12
00000 02468 О 4 8 12 16 О 6 12 18 24
Альтернативный синтаксис объявления массива
Существует иная форма, которая может использоваться для объявления массива:
type[ ] var-name;
Здесь квадратные скобки следуют за спецификатором типа, а не именем пе-ременной массива. Например, следующие два объявления эквивалентны:
int al[] = new int[3]; int[] a2 = new int[3];
Представленные здесь объявления также эквивалентны:
char twodi[][] = new char[3][4]> char[] [] twod2 = new char[3] [4];
Эта альтернативная форма объявления включена, главным образом, для удобства.
Несколько слов относительно строк
Как вы, возможно, заметили, в предшествующем обсуждении типов данных и массивов не было никакого упоминания о строках или строковом типе данных. Это не потому, что язык Java не поддерживает такой тип, — он это делает. Дело в том, что строчный тип Java, называемый string, — не просто массив символов (как строки в C/C++). Скорее, string определяет объект, и полное описание этого требует понимания нескольких объектно-ориентированных свойств. Поэтому о нем будет сказано позже, после описания объектов. Однако, для того чтобы вы могли использовать простые строки в примерах программ, сделаем следующее краткое введение. Тип string используется, чтобы объявлять строковые переменные. Вы можете также объявлять массивы строк. string-переменной может быть назначена строковая константа (строка символов в двойных кавычках).
Глава 3. Типы данных, переменные и массивы 81_
Переменная типа string может быть назначена другой переменной типа string. Разрешено использовать объект типа string как аргумент в методе println(). Например, рассмотрим следующий фрагмент:
String str = "Это тест"; System.out.println(str) ;
Здесь str — объект типа string. Ему назначена строка "Это тест". Она выводится на экран методом println ().
Как вы увидете позже, объекты типа string имеют много специальных свойств и атрибутов, которые делают их весьма мощными и удобными в использовании. Однако в следующих нескольких главах вы будете применять их только в самой простой форме.
Замечание для программистов C/C++ по поводу указателей
Если вы опытный программист C/C++, то знаете, что эти языки обеспечивают поддержку для указателей. Однако никакого упоминания об указателях не было сделано в текущей главе. Причина проста — Java не поддерживает и не допускает указателей. (Или, более точно, Java не поддерживает указатели, которые доступны и/или изменяемы программистом.) Язык Java не разрешает указатели, потому что, сделав это, он позволил бы Java-апплетам нарушать межсетевую защиту между средой выполнения Java и главной ЭВМ. (Вспомните, указателю можно назначать любой адрес в памяти — даже адрес, который мог бы быть вне Java-системы во время выполнения.) Так как C/C++ интенсивно используют указатели, можно подумать, что их потеря — существенный недостаток Java. Однако это не так. Java разработан таким образом, что, пока вы остаетесь в пределах границ среды выполнения, вам никогда не будет нужно ни использовать указатели, ни получать какую-то выгоду от их применения. Советы по преобразованию кода C/C++, включающего указатели, в код Java можно найти в главе 28.