Та же самая основа вопроса может быть задана в любом месте. Почему есть типы в классах? Это ограничение и ожидание данных. Вы ожидаете получить тип x, чтобы иметь дело с типом x. Вы не хотите иметь дело с бесконечной возможностью и делаете много проверок типов каждый раз, когда имеете дело с частью данных.
Типы, будь то примитивный или созданный тип, используются для определения структуры, которая будет удерживаться. Он говорит, что N - это тип X, и вы можете делать все то, что может делать тип X.
Вы говорите, например, я имею дело с целым числом, которое может быть в определенном диапазоне чисел от -X до X, против большого целого числа, которое может быть в большем диапазоне чисел от -Z до Z (как конкретный пример). Ожидания использования упадут в этих диапазонах.
Вы также, как уже упоминали другие, определяете, как хранить информацию на более низком уровне. Событие, говорящее, что у вас есть целое число, является чем-то вроде абстракции от машины.