Оценить:
 Рейтинг: 3.5

Java за неделю. Вводный курс

Год написания книги
2018
<< 1 2 3 4 5 6 7 8 ... 25 >>
На страницу:
4 из 25
Настройки чтения
Размер шрифта
Высота строк
Поля

В языке Java заявлено восемь примитивных типов данных. Первые четыре используются для хранения целых чисел.

byte – однобайтное целое – предназначен для хранения целых чисел в диапазоне от -128 до 127 и занимает один байт в памяти.

short – короткое целое – занимает два байта в памяти и применяется для хранения чисел в диапазоне от -32768 до32767.

int – целое – занимает 4 байта в памяти и применяется для хранения чисел в диапазоне от -2

 (-2147483648) до 2

—1 (2147483647). Это стандартный тип данных для работы с целыми числами.

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

long – длинное целое – занимает 8 байтов в памяти и хранит числа в диапазоне от -2

 до 2

—1. На практике настолько большие числа встречаются редко. Чтобы определить длинное целое число, следует добавить суффикс «L» в конце, например 5201225834L.

В дополнение к целочисленным типам, имеется два типа данных для хранения чисел с плавающей точкой.

float – с плавающей точкой – занимает 4 байта в памяти и может хранить числа в диапазоне от -3,4?10

 до 3,4?10

 с дискретностью 3,4?10

. Такая точность представления соответствует 7 знакам после запятой. Если вы попытаетесь сохранить в типе float число 1,234567891 (10 знаков), оно будет округлено до 1,234568 (7 знаков).

Что такое дискретность? Вы не можете задать значение типа float с произвольной точностью. Ведь количество байт памяти для хранения этого числа ограничено. Если мы начнем перечислять подряд, начиная с ноля, числа с плавающей точкой, то они будут следовать с некоторым шагом (дискретностью) в младших разрядах: 0; 3,4?10

; 6,8?10

 и т. д. Величину дискретности можно условно назвать погрешностью представления числа. Для достижения более высокой точности применяется тип double.

double – с плавающей точкой, двойной точности – занимает 8 байтов в памяти и может хранить числа в диапазоне от -1,7?10

 до 1,7?10

 с дискретностью 1,7?10

. Если вы не скованы ограничениями объема памяти, используйте тип double вместо float, как более точный.

По умолчанию, как только вы использовали десятичную точку в программе на языке Java, этому значению присваивается тип double. Если вы хотите, чтобы это число было истолковано именно как float, добавьте суффикс «F» в конце числа.

Кроме шести перечисленных типов, Java располагает двумя специфическими типами данных.

char – символ – занимает 2 байта и применяется для хранения одиночного символа Unicode, например «A», "@», «$» и т. д.

boolean – логический – это особый тип данных, который может хранить только два фиксированных значения: true (истина) и false (ложь). Размер занятой памяти зависит от реализации Java—машины. Этот тип данных широко используется в условных операторах и операторах цикла, которые мы рассмотрим позже.

Все остальные типы данных, включая пользовательские типы, являются ссылочными.

3.1.2 Объявление и инициализация переменных

При объявлении переменной указывается тип переменной и ее имя. Переменная может быть объявлена в любом месте программы, главное – до первого использования.

boolean fileSaved;

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

int userNum, userAge, userWeight;

Одновременно с объявлением переменной ей можно присвоить значение. Эта процедура называется инициализацией.

int start=10, end=100;

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

int start=5, end=10;

int sum=a+b;

В этом примере переменная sum инициализирована значением 15.

Обратите внимание, что в момент динамической инициализации не возникает связь между переменными. Например, если после инициализации изменится значение переменных start и end, это никак не повлияет на значение sum.

3.1.3 Доступность переменных

Доступность, или область видимости переменных – это важный аспект программирования. Если кратко, переменная доступна внутри блока, определенного парой фигурных скобок, внутри которого она объявлена. Например, если переменная объявлена внутри цикла, то она будет доступна только внутри этого цикла. Снаружи цикла может быть объявлена переменная с таким же именем, но фактически это будет совершенно другая переменная.

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

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

3.1.4 Ввод и считывание данных

Переменным можно присваивать значения, введенные извне. Давайте немного отвлечемся от абстрактных рассуждений и запустим две простых программы, которые запрашивают данные у пользователя и обрабатывают их. К этому моменту вы должны уметь создавать проекты в среде NetBeans IDE, поэтому я привожу только исходный код примеров.

Программа из листинга 3.1 поддерживает консольный ввод – пользователь читает запросы программы и вводит данные в окне системного монитора среды NetBeans. В программе из листинга 3.2 задействованы модальные окна с привычным графическим оформлением. Вы увидите, насколько просты эти программы. Не волнуйтесь, если что-то непонятно. Пока просто привыкайте к новым терминам. По мере чтения этой книги придет полное понимание.

Листинг 3.1 Чтение консольного ввода, вывод в консоль

import java.util.Scanner;

public class Listing3_1 {

public static void main (String [] args) {
<< 1 2 3 4 5 6 7 8 ... 25 >>
На страницу:
4 из 25