Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 конспект лекций ООП Java.doc
Скачиваний:
28
Добавлен:
03.05.2015
Размер:
962.05 Кб
Скачать

Базовые типы данных

Определено восемь базовых типов данных, размер каждого из которых остается неизменным независимо от платформы. Беззнаковых типов в 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

Переменные базовых типов, объявленные как члены класса, хранят нулевые значения, соответствующие своему типу. Если переменные объявлены как локальные переменные в методе, то перед использованием они обязательно должны быть проинициализированы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]