
- •Глава 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
Глава 12. Ввод/вывод, апплеты и другие темы 321
А а = new АО;
В Ь = new ВО;
С с = new СО;
D d = new D();
if(a instanceof A)
System.out.println("а это экземпляр класса A"); if(b instanceof B)
System.out.println("b это экземпляр класса В"); if(с instanceof С) •
System.out.println("с это экземпляр класса С"); if(с instanceof A)
System.out.println{"тип с можно привести к типу А");
if(a instanceof С)
System.out.println("тип а можно привести к типу С");
System.out.println(};
// сравнить производные типы A ob;
ob = d; // ссылка на d
System.out.println("ob теперь ссылается на d");
if(ob instanceof D)
System.out.println("ob теперь экземпляр класса D");
System.out.println();
ob = с; // ссылка на с
System.out.println("ob теперь ссылается на с");
if(ob instanceof D)
System.out.println("тип ob можно привести к типу D"); else
System.out.println("тип ob нельзя привести к типу D");
if(ob instanceof A)
System.out.println("тип ob можно привести к типу А");
System.out.println() ;
// все объекты можно привести к типу Object if(a instanceof Object)
System.out.println("тип а можно привести к типу Object"); if(b instanceof Object)
System.out.println("тип b можно привести к типу Object"); if(с instanceof Object)
System.out.println("тип с можно привести к типу Object");
322 Часть I. Язык Java
if(d instanceof Object)
System.out.println("тип d можно привести к типу Object"); } } ;
Вывод этой программы:
а теперь экземпляр класса А b теперь экземпляр класса В с теперь экземпляр класса С тип с можно привести к типу А
-оЬ теперь ссылается на d
ob теперь экземпляр класса D
ob теперь ссылается на с
тип ob нельзя привести к типу D
тип ob можно привести к типу А
тип а можно привести к типу Object тип b можно привести к типу Object тип с можно привести к типу Object тип d можно привести к типу Object
Операция instanceof не нужна для большинства программ, потому что, вообще-то, вы знаете тип объекта, с которым работаете. Однако она может быть очень полезна, когда вы пишете обобщенные подпрограммы, работающие на объектах из сложной иерархии классов.
Ключевое слово strictfp
Java 2 добавляет к языку Java новое ключевое слово strictfp. С созданием Java 2, модель вычисления с плавающей точкой была слегка ослаблена, чтобы для некоторых процессоров, таких как Pentium, увеличить скорость вычислений с плавающими числами. Новая модель не требует усечения некоторых промежуточных значений, которые появляются во время вычислений. Изменяя класс или метод с помощью strictfp, вы гарантируете, что вычисления с плавающей точкой (и таким образом все усечения) выполняются точно так же, как в более ранних версиях Java. Усечение воздействует только на экспоненту некоторых операций. Когда некоторый класс модифицируется с помощью strictfp, все методы в этом классе автоматически модифицируются С ПОМОЩЬЮ Strictfp.
Например, следующий фрагмент сообщает Java, что нужно использовать первоначальную модель с плавающей точкой для вычислений во всех методах, определенных в MyCiass:
strictfp class MyCiass { //...