- •Содержание
- •Введение
- •1. Основные понятия языка Java иUml
- •Простое приложение
- •Простой апплет
- •Классы и объекты
- •Базовые типы данных
- •Операторы
- •If (obj instanceof java.Awt.Font) {/*операторы*/}
- •Операторы управления
- •UmLкак язык описания объектно-ориентированных программ
- •2. Библиотека стандартаJava_se Наследование
- •Использование super и this
- •Абстрактные классы и интерфейсы
- •Переопределение методов
- •Перегрузка методов
- •Полимофизм и расширяемость
- •Статические методы и полиморфизм
- •Внутренние (inner) классы
- •Вложенные классы (nested)
- •Анонимные классы
- •Использование библиотек классов Файлы. Потоки ввода/вывода
- •Обработка исключительных ситуаций
- •Коллекции
- •Графические интерфейсы пользователя
- •События и их обработка
- •Элементы управления
- •2. Библиотека стандартаJava_ee
- •ТехнологииJsp
Базовые типы данных
Определено восемь базовых типов данных, размер каждого из которых остается неизменным независимо от платформы. Беззнаковых типов в Java не существует.
Тип |
Размер (бит) |
По умолчанию |
Значения (диапазон или максимум) |
boolean |
8 |
false |
true , false |
byte |
8 |
0 |
128..127 |
char |
16 |
'\u0000' |
0..65535 |
short |
16 |
0 |
32768..32767 |
int |
32 |
0 |
2147483648..2147483647 |
long |
64 |
0 |
922372036854775807L |
float |
32 |
0.0f |
3.40282347E+38 |
double |
64 |
0.0 |
1.797693134486231570E+308 |
Тип charиспользует формат UNICODE длиной два байта, что позволяет использовать множество наборов символов, включая иероглифы.
В Javaиспользуются целочисленные литералы: 1024, 015– восьмеричное значение, 0х51– шестнадцатеричное значение. Целочисленные литералы создают значение типа int . если необходимо определить длинный литерал типа long, в конце указывается символ L ( например:OxffffL ). Литералы с плавающей точкой записываются в виде1.918или в экспоненциальной форме0.112E-05и относятся к типу doubleЕсли необходимо определить литерал типа float, то в конце следует добавить символ F. Символьные литералы определяются в апострофах (‘a’,‘\n’,‘\141’,‘\u005a’). Строки заключаются в двойные апострофы и представляют собой объекты. Литералами считаются булевские значения trueиfalse, а такжеnull– значение по умолчанию для объектов. В арифметических выражениях автоматически выпоняются расширяющие преобразования типаbyte short int long float double.Javaавтоматически расширяет тип каждогоbyteилиshortоперанда доint. Для сужающих преобразований необходимо производить явное преобразование вида (тип) значение. Например:byte b=(byte)35;
Для преобразования базовых типов друг к другу применяется операция (type), где в качестве(type) используется один из совместимых базовых типов. При приведении типов данных меньшей длины к типам большей длины никаких операций производить не требуется. Следует обратить внимание на то, что операция присваивания результатов арифметических операций для базовых типовchar, byte, short вызывает ошибку компиляции, так как при вычислениях производится преобразование к типуint, аJavaне позволяет присваивать переменной значение более длинного типа, если только это не константы. Исключение составляют операторы инкремента, декремента и операторы +=,=, *=, /= (см. описание ниже в этой главе в разделе «Операторы»). Инициализация статических переменных классов и инициализация при объявлении переменных базовых типов в методах разрешается.
В именах переменных не могут использоваться символы арифметических и логических операторов, а также символ ‘#’. Применение символов ‘$’ и ‘_’ допустимо, в том числе и в первой позиции имени.
// пример # 7 : типы данных и операции над ними : TypeByte.java
public class TypeByte {
private static int j;
public static void main(String[] args) {
int i = 3;
byte b = 1,
b1 = 1 + 2;
//b = b1 + 1; //ошибка приведения типов
b = (byte)(b1 + 1);//0
show(b);
//b = -b; //ошибка приведения типов
b = (byte)-b;//1
show(b);
//b = +b1; //ошибка приведения типов
b = (byte)+b1; //2
show(b);
b1 *= 2; //3
show(b1);
b1++; //4
show(b1);
//b = i; //ошибка приведения типов
b = (byte)i; //5
show(b);
b += i++; //работает!!! //6
show(b);
float f = 1.1f;
b /= f; //работает!!! //7
show(b);
}
static void show(byte b){
System.out.print(j + " res=" + b+ " ");
j++;
}
}
В результате будет выведено:
0 res=4 1 res=-4 2 res=3 3 res=6 4 res=7 5 res=3 6 res=6 7 res=5
Переменные базовых типов, объявленные как члены класса, хранят нулевые значения, соответствующие своему типу. Если переменные объявлены как локальные переменные в методе, то перед использованием они обязательно должны быть проинициализированы.