Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
21-40 ред.doc
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
493.57 Кб
Скачать

40 Переменные и базовые типы данных. Классы-оболочки.

Переменные и базовые типы данных

В языке Java определено восемь базовых типов данных, размер каждого из которых остается неизменным независимо от платформы. Беззнаковых типов в Java не существует.

Имена переменных не могут начинаться с цифры, в именах не могут использоваться символы арифметических и логических операторов, а также символ ‘#’. Применение символов ‘$’ и ‘_’ допустимо, в том числе и в первой позиции имени.

/* пример # 1 : типы данных и операции над ними : TypeByte.java */

class TypeByte {

public static void main(String[] args) {

int i = 3;

byte b = 1, b1 = 1 + 2;

//b = b1 + 1; //ошибка приведения типов

b = (byte)(b1 + 1);//0

//b = -b; //ошибка приведения типов

b = (byte)-b;//1

//b = +b1; //ошибка приведения типов

b = (byte) + b1; //2

b1 *= 2; //3

b1++; //4

//b = i; //ошибка приведения типов

b = (byte)i; //5

b += i++; //работает!!! //6

float f = 1.1f;

b /= f; //работает!!! //7

}

}

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

Классы-оболочки

Кроме базовых типов данных широко используются соответствующие классы-оболочки (wrapper-классы): Boolean, Character, Integer, Byte, Short, Long, Float, Double. Объекты этих классов могут хранить те же значения, что и соответствующие им базовые типы.

Объекты этих классов представляют ссылки на участки динамической памяти, в которой хранятся их значения, и являются классами-оболочками для значений базовых типов. Указанные классы находятся в библиотеке java.lang, являются наследниками абстрактного класса Number и реализуют интерфейс Comparable, представляющий собой интерфейс для работы со всеми скалярными типами.

Объекты классов-оболочек не могут принимать участия в арифметических операциях и по умолчанию получают значение null.

Переменную базового типа можно преобразовать к соответствующему объекту, передав ее значение конструктору при объявлении объекта. Для приведения объектов к другому типу используются также методы valueOf(), toString() и др. Объекты класса могут быть преобразованы к любому базовому типу методами intValue(), digit(),

longValue() и др.

Однако класс Character не наследуется от Number, так как этому классу нет необходимости поддерживать интерфейс классов, предназначенных для хранения результатов арифметических операций. Класс Character имеет целый ряд специфических методов для обработки символьной информации. У класса Character, в отличие от других классов оболочек, не существует конструктора с параметром типа String.

/* пример # 2 : преобразование типов данных : Types.java */

public class Types {

public static void main(String[] args) {

Float f1 = new Float(10.01); //double в Float

String s1 = Float.toString(0f); //float в String

String s2 = String.valueOf(f1); //Float в String

Byte b = Byte.valueOf("120"); //String в Byte

double d = b.doubleValue(); //Byte в double

short s = (short) d; //double в short

/* Character в int */

Character ch = new Character('3');

int i = Character.digit(ch.charValue(), 10);

System.out.println("s1=" + s1 + ", s2=" + s2);

System.out.print("b=" + b + ", s=" + s

+ ", d=" + d + ", i=" + i);

}

}

Результатом выполнения данного кода будет:

s1=0.0, s2=10.01

b=120, s=120, d=120.0, i=3

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