Чтение онлайн

на главную - закладки

Жанры

Java: руководство для начинающих
Шрифт:

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

Если диапазон значений, допустимых для типа int, не устраивает, можно выбрать тип long. Ниже приведен пример программы для расчета числа кубических дюймов в кубе, длина, ширина и высота которого равны одной миле. /* Расчет числа кубических дюймов в кубе объемом в 1 милю. */ class Inches { public static void main(String args[]) { long ci; long im; im = 5280 * 12; ci = im * im * im; System.out.println("There are " + ci + " cubic inches in cubic mile."); } }

Результат выполнения данной программы выглядит следующим образом: There are 254358061056000 cubic inches in cubic mile.

Очевидно, что результирующее значение не умещается в переменной типа int.

Наименьшим диапазоном допустимых значений среди всех целочисленных типов обладает тип byte. Переменные типа byte очень удобны для обработки исходных двоичных данных, которые могут оказаться несовместимыми с другими встроенными в Java типами данных. Тип short предназначен для хранения небольших целых чисел. Переменные данного типа пригодны для хранения значений, изменяющихся в относительно небольших пределах по сравнению со значениями типа int. Типы данных с плавающей точкой

Как пояснялось в главе 1, типы с плавающей точкой могут представлять числовые значения с дробной частью. Существуют два типа данных с плавающей точкой: float и double. Они представляют числовые значения с одинарной и двойной точностью соответственно. Разрядность данных типа float составляет 32 бита, а разрядность данных типа double — 64 бита.

Тип double употребляется намного чаще, чем float, поскольку во всех математических функциях из библиотек классов Java используются значения типа double. Например, метод sqrt , определенный в стандартном классе Math, возвращает значение double, являющееся квадратным корнем значения аргумента этого метода, также представленного типом double. Ниже приведен фрагмент кода, в котором метод sqrt используется для расчета длины гипотенузы треугольника, при условии, что заданы длины катетов. /* Определение длины гипотенузы, исходя из длины катетов по теореме Пифагора. */ class Hypot { public static void main(String args[]) { double x, y, z; x = 3; У = 4; // Обратите внимание на вызов метода sqrt. Перед именем метода // указывается имя класса, членом которого он является. z = Math.sqrt(х*х + у*у); System.out.println("Hypotenuse is " + z) ; } }

Выполнение этого фрагмента кода дает следующий результат: Hypotenuse is 5.0

Как упоминалось выше, метод sqrt определен в стандартном классе Math. Обратите внимание на вызов этого метода в приведенном выше фрагменте кода: перед его именем указывается имя класса. Аналогичным образом перед именем метода println указывается имена классов System.out. Имя класса указывается не перед всеми стандартными методами, но для некоторых из них целесообразно применять именно такой способ. Символы

В отличие от других языков в Java символы не являются 8-битовыми значениями. Вместо этого в Java символы всех языков мира представлены в уникоде (Unicode). Таким образом, в Java тип char представляет 16-разрядное значение без знака в диапазоне от О до 65536. Стандартный набор 8-разрядных символов в коде ASCII является подмножеством уникода. В нем коды символов находятся в пределах от 0 до 127. Следовательно, символы в коде ASCII по-прежнему допустимы в Java.

Переменной символьного типа может быть присвоено значение, которое записывается в виде символа, заключенного в одинарные кавычки. В приведенном ниже фрагменте кода показано, каким образом переменной ch присваивается буква S. char ch; ch = 'S’;

Отобразить значение типа char можно с помощью метода println . В приведенной ниже строке кода показано, каким образом этот метод вызывается для вывода на экран значения символа, хранящегося в переменной ch. System.out.println("This is ch:" + ch) ;

Тип char представляет 16-разрядное значение без знака, а это означает, что над пе ременной символьного типа можно производить различные арифметические операции. Рассмотрим в качестве примера следующую программу: //С символьными переменными можно обращаться, как с целочисленными, class CharArithDemo { public static void main(String args[]) { char ch; ch = ' X' ; System.out.println("ch contains " + ch) ; ch++; // переменную типа char можно инкрементировать System.out.println("ch is now " + ch) ; ch = 90; // переменной типа char можно присвоить целочисленное значение System.out.println("ch is now " + ch) ; } }

Ниже приведен результат выполнения данной программы. ch contains X ch is now Y ch is now Z

В приведенной выше программе переменной ch сначала присваивается значение кода буквы X. Затем содержимое ch увеличивается на единицу, в результате чего оно превращается в код буквы Y — следующего по порядку символа в коде ASCII (а также в уникоде). После этого переменной ch присваивается значение 90, представляющее букву Z в коде ASCII (и в уникоде). А поскольку символам в коде ASCII соответствуют первые 127 значений в уникоде, то все приемы, обычно применяемые для манипулирования символами в других языках программирования, вполне работоспособны и в Java. Логический тип данных

Тип boolean представляет логические значения “истина” и “ложь”, для которых в Java зарезервированы слова true и false соответственно. Следовательно, переменная или выражение типа boolean может принимать одно из этих двух значений.

Ниже приведен пример программы, демонстрирующий применение типа boolean в коде. // Демонстрация обращения с логическими значениями, class BoolDemo { public static void main(String args[]) { boolean b; b = false; System.out.println("b is " + b); b = true; System.out.println("b is " + b); // Логическое значение можно использовать для // управления условным оператором if. if(b) System.out.println("This is executed."); b = false; if(b) System.out.println("This is not executed."); // Логическое значение получается в результате // выполнения оператора отношения. System.out.println("10 > 9 is " + (10 > 9)); } }

Результат выполнения данной программы выглядит следующим образом: b is false b is true This is executed. 10 > 9 is true

Анализируя приведенную выше программу, необходимо отметить следующее. Во-первых, нетрудно заметить, что метод println , обрабатывая логическое значение, отображает символьные строки "true" и "false". Во-вторых, значение логической переменной может быть само использовано для управления условным оператором if. Это означает, что отпадает необходимость в выражениях вроде следующего: if(b == true) . . .

И в-третьих, результатом выполнения оператора отношения, например <, является логическое значение. Именно поэтому при передаче методу println выражения (10 >9) отображается логическое значение true. Скобки в данном случае необходимы, потому что оператор + имеет более высокий приоритет, чем оператор >.

Пример для опробования 2.1. Расчет расстояния до удара молнии

В данном проекте предстоит написать программу, вычисляющую расстояние в футах до источника звука при ударе молнии. Звук распространяется в воздухе со скоростью, приблизительно равной 1100 футам в секунду. Следовательно, зная промежуток времени между теми моментами, когда наблюдатель увидит вспышку молнии и услышит сопровождающий ее раскат грома, можно рассчитать расстояние до нее. Допустим, что этот промежуток времени составляет 7,2 секунды.

Поделиться:
Популярные книги

Локки 2. Потомок бога

Решетов Евгений Валерьевич
2. Локки
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Локки 2. Потомок бога

Запечатанный во тьме. Том 2

NikL
2. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 2

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри

Лекарь Империи 10

Карелин Сергей Витальевич
10. Лекарь Империи
Фантастика:
городское фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 10

Воспоминания о Корнее Чуковском

Коллектив авторов
Документальная литература:
биографии и мемуары
6.25
рейтинг книги
Воспоминания о Корнее Чуковском

Кодекс Крови. Книга VIII

Борзых М.
8. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VIII

#Бояръ-Аниме. Газлайтер. Том 24

Володин Григорий Григорьевич
24. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 24

Товарищ "Чума" 3

lanpirot
3. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 3

Жизнь, которой не было

Денис Палимов
1. Жизнь, которой не было
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Жизнь, которой не было

Вагант

Листратов Валерий
6. Ушедший Род
Фантастика:
боевая фантастика
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Вагант

Вернувшийся: Первые шаги. Том II

Vector
2. Вернувшийся
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Первые шаги. Том II

Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Кандель Феликс Соломонович
Научно-образовательная:
история
5.00
рейтинг книги
Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Кодекс Охотника. Книга ХХХ

Винокуров Юрий
30. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга ХХХ