Java: Зачем нужны типы данных
Программы работают с разной информацией. Это текст, числа, даты, логические значения. Внутри высокоуровневых языков программирования каждое значение относится к какому-то типу. Например, строки относятся к типу String, а целые числа — к типу int.
Зачем нужны типы? Они защищают программу от трудноотловимых ошибок. Тип определяет две вещи.
- Допустимые значения. Например, числа в Java делятся на две группы. Целые числа относятся к типу int, а рациональные (дробные) — к типу double. Такое разделение связано с особенностями работы аппаратуры.
- Набор допустимых операций. Например, операция умножения имеет смысл для целых чисел. Но не имеет смысла для строк. Умножать слово "мама" на слово "блокнот" — бессмыслица.
Язык программирования распознает типы. Поэтому Java не позволит умножать строку на строку, но позволит умножать целое число на другое целое число. Наличие типов и таких ограничений защищает программы от случайных ошибок:
"one" * "two"
Error:
bad operand types for binary operator '*'
first type: java.lang.String
second type: java.lang.StringЧисла и строки относятся к разным типам
Каким образом Java понимает, что за тип данных перед ней? По способу записи значения. Число записывается без кавычек, а строки всегда ограничены двойными кавычками. Например, значение "234" считается строкой, хотя внутри записаны цифры:
System.out.println(5); // => 5
System.out.println("234"); // => 234На экране результат выглядит похоже, но внутри программы это разные значения. Число 5 относится к типу int, а "234" — к типу String. Сложить строку и число напрямую Java не даст без явного указания, как преобразовать данные.
Примитивные и ссылочные типы
Часть типов встроена в язык. Их называют примитивными. Кроме целых чисел int и рациональных double, к ним относятся логический тип boolean со значениями true и false, а также символ char:
int n = 5; // целое число
double x = 1.5; // рациональное число
boolean flag = true; // логическое значение
char c = 'A'; // один символОбратите внимание на тип char. Символ записывается в одинарных кавычках, например 'A'. А вот строка из одного символа заключается в двойные кавычки, например "A". Это разные значения разных типов.
Тип String относится к ссылочным типам и описывает набор символов, то есть текст. При этом строки используются наравне с примитивными типами.
Типов данных в Java много, плюс можно создавать свои. Постепенно мы познакомимся со всеми необходимыми и научимся правильно их использовать.
Задание
Выведите на экран результат деления целых чисел 3 на 2. Подумайте почему получился такой ответ?
Полезное
Java: Зачем нужны типы данных
Программы работают с разной информацией. Это текст, числа, даты, логические значения. Внутри высокоуровневых языков программирования каждое значение относится к какому-то типу. Например, строки относятся к типу String, а целые числа — к типу int.
Зачем нужны типы? Они защищают программу от трудноотловимых ошибок. Тип определяет две вещи.
- Допустимые значения. Например, числа в Java делятся на две группы. Целые числа относятся к типу int, а рациональные (дробные) — к типу double. Такое разделение связано с особенностями работы аппаратуры.
- Набор допустимых операций. Например, операция умножения имеет смысл для целых чисел. Но не имеет смысла для строк. Умножать слово "мама" на слово "блокнот" — бессмыслица.
Язык программирования распознает типы. Поэтому Java не позволит умножать строку на строку, но позволит умножать целое число на другое целое число. Наличие типов и таких ограничений защищает программы от случайных ошибок:
"one" * "two"
Error:
bad operand types for binary operator '*'
first type: java.lang.String
second type: java.lang.StringЧисла и строки относятся к разным типам
Каким образом Java понимает, что за тип данных перед ней? По способу записи значения. Число записывается без кавычек, а строки всегда ограничены двойными кавычками. Например, значение "234" считается строкой, хотя внутри записаны цифры:
System.out.println(5); // => 5
System.out.println("234"); // => 234На экране результат выглядит похоже, но внутри программы это разные значения. Число 5 относится к типу int, а "234" — к типу String. Сложить строку и число напрямую Java не даст без явного указания, как преобразовать данные.
Примитивные и ссылочные типы
Часть типов встроена в язык. Их называют примитивными. Кроме целых чисел int и рациональных double, к ним относятся логический тип boolean со значениями true и false, а также символ char:
int n = 5; // целое число
double x = 1.5; // рациональное число
boolean flag = true; // логическое значение
char c = 'A'; // один символОбратите внимание на тип char. Символ записывается в одинарных кавычках, например 'A'. А вот строка из одного символа заключается в двойные кавычки, например "A". Это разные значения разных типов.
Тип String относится к ссылочным типам и описывает набор символов, то есть текст. При этом строки используются наравне с примитивными типами.
Типов данных в Java много, плюс можно создавать свои. Постепенно мы познакомимся со всеми необходимыми и научимся правильно их использовать.
Задание
Выведите на экран результат деления целых чисел 3 на 2. Подумайте почему получился такой ответ?
Полезное
Ваше упражнение проверяется по этим тестам
import static org.assertj.core.api.Assertions.assertThat;
import java.io.ByteArrayOutputStream;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;
class AppTest {
public static void main(String[] args) {
final var expected = "1";
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
App.main(null);
final var actual = out.toString().trim();
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
System.out.println(actual);
assertThat(actual).isEqualTo(expected);
}
}Решение учителя откроется через:
20:00
