Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по java.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
237.57 Кб
Скачать

7. Работа с операторами.

Операторы присваивания и сравнения:

Во-первых, конечно же, различаются оператор присваивания = и оператор сравнения ==.

х = 1; // присваиваем переменной х значение 1

х == 1 // сравниваем значение переменной х с единицей

Оператор сравнения всегда возвращает булевское значение true или false.

Оператор присваивания возвращает значение правого операнда.

// пример вызовет ошибку компилятора

if (х=0) { // здесь должен применятся оператор сравнения ==

В Java легко устраняется. Поскольку выражение х=0 имеет числовое значение 0, а не булевское (и тем более не воспринимается как всегда истинное), то компилятор сообщает об ошибке (необходимо писать х==0). Условие "не равно" записывается как !=.

Логические операторы:

Логические операторы "и" и "или" (& и |) можно использовать в двух вариантах.

Первый вариант операторов (&, |) всегда вычисляет оба операнда, второй же - ( &&, 11 ) не будет продолжать вычисления, если значение выражения уже очевидно. Например:

int x=1;

(х>0) | calculate(x) // в таком выражении произойдет вызов calulate (х>0)

11 calculate(x) // а в этом – нет.

Опиратор "не":

Логический оператор отрицания "не" записывается как ! и, конечно, имеет только один вариант использования. Этот оператор меняет булевское значение на противоположное.

int x=1;

х>0 // выражение истинно

!(х>0) // выражение ложно

Оператор <<

При сдвиге влево оператором << все биты числа смещаются на указанное количество позиций влево, причем освободившиеся справа позиции заполняются нулями. Эта операция аналогична умножению на 2п и действует вполне предсказуемо, как при положительных, так и при отрицательных аргументах.

8. Типы данных.

Ткпы данных определяют основные возможности любого языка. Кроме того, Java является строго типизированным языком, а потому четкое понимание модели типов данных очень помогает в написании качественных программ.

Первую группу составляют 8 простых, или примитивных (от английского primitive), типов данных. Они подразделяются на три подгруппы:

• целочисленные: - byte, - short, -int, -long.

  • char (также является целочисленным типом)

• дробные: -float, - double

• булевский: - Boolean.

Вторую группу составляют объектные, или ссылочные (от английского reference), типы данных. Это все классы, интерфейсы и массивы. В стандартных библиотеках первых версий Java находилось несколько сот классов и интерфейсов, сейчас их уже тысячи. Кроме стандартных, написаны многие и многие классы и интерфейсы, составляющие любую Java-программу.

Иллюстрировать логику работы с типами данных проще всего на примере переменных.

9.Имена. Простые и составные имена. Элементы

Имена бывают простыми (simple), состоящими из одного идентификатора (они определяются во время объявления) и составными (qualified), состоящими из последовательности идентификаторов, разделенных точкой.

У пакетов и ссылочных типов (классов, интерфейсов, массивов) есть элементы (members). Доступ к элементам осуществляется с помощью выражения, состоящего из имен, например, пакета и класса, разделенных точкой.

Далее классы и интерфейсы будут называться объединяющим термином тип (type).

Элементами пакета являются содержащиеся в нем классы и интерфейсы, а также вложенные пакеты. Чтобы получить составное имя пакета, необходимо к полному имени пакета, в котором он располагается, добавить точку, а затем его собственное простое имя. Например, составное имя основного пакета языка Java — java.lang (то есть простое имя этого пакета lang, и он находится в объемлющем пакете Java).

Простое имя классов и интерфейсов дается при объявлении, например, Object, String, Point. Чтобы получить составное имя таких типов, надо к составному имени пакета, в котором находится тип, через точку добавить простое имя типа. Например, java.lang.Object, java.lang.reflect.Method или com.myfirm.MainClass.

Для ссылочных типов элементами являются поля и методы, а также внутренние типы (классы и интерфейсы). Элементы могут быть, как непосредственно объявлены в классе, так и получены по наследству от родительских классов и интерфейсов, если таковые имеются. Простое имя элементов также дается при инициализации.