Java: Именование
Стиль именования функций в Java такой же, как и стиль именования переменных: lowerCamelCase. Но при выборе самих слов есть важное отличие.
Функция — действие, вызов функции всегда подобен указанию «сходи», «возьми», «напечатай», «положи» и так далее. Вспомните, какие функции были в предыдущих уроках:
showDate()
(«показать дату»)sub()
(subtract — «вычесть»)print()
(«напечатать»)round()
(«округлить»)getType()
(«получить тип»)
Переменная — сущность, поэтому мы используем существительные:
child
result
euros
Берите на вооружение следующую структуру: функция — глагол, переменная — существительное.
(У нас также была функция parentFor()
, и это имя — не глагол. Можно было бы назвать её getParentFor()
, но имена типа parentFor
, childOf
, priceAt
, min
, max
— общепринятые формы. «Функция — глагол» — не железное правило, но почти всегда лучше придерживаться его).
В уроке про переменные мы просили вас придумать название переменной и записать в блокноте или отправить себе на почту. Найдите это название и посмотрите на него свежим взглядом: оно понятное? Описывает суть однозначно или требует вникания?
Жизнь программиста наполнена такими моментами: открыть старый код и попытаться понять его. Будьте добры к будущему себе и к коллегам, давайте переменным и функциям понятные названия.
Задание
В Java есть интересная функция System.out.printf()
. Она печатает строку на основе шаблона и данных.
System.out.printf("Today is %s %d", "February", 8);
Today is February 8
Первый аргумент в System.out.printf()
— строка-шаблон, в которой кроме самого текста могут присутствовать специальные заполнители(в данном примере, %s и %d). Это «спецификаторы»/«флаги», в которые подставляется информация, указанная в следующих аргументах. %s
- спецификатор для строк, %d
— для целых чисел. Порядок и тип значений должны совпадать с порядком и типом спецификаторов.
В примере выше, во время работы программы вместо %s
будет подставлен текст 'February', а вместо %d
- число 8.
Обратите внимание, printf()
в отличие от println()
не добавляет в конец символ переноса строки. Будьте очень внимательны, в первое время это может приводить к путанице.
При выводе дат иногда требуется фиксировать количество цифр, скажем, всегда писать нули перед числом если число меньше 10. System.out.printf()
позволяет решить эту задачу:
System.out.printf("Today is %s %02d", "February", 8);
Today is February 08
%02d
— сделать две цифры и заполнить нулями оставшееся пространство. %03d
— три цифры, и так далее:
System.out.printf("Today is %s %04d", "February", 8);
Today is February 0008
Реализуйте функцию printFormattedBirthday()
, которая принимает на вход три параметра: день, месяц и год рождения, а печатает их строкой в отформатированном виде, например: 30-02-1953
.
День и месяц нужно форматировать так, чтобы при необходимости добавлялся 0
слева. Например, если в качестве месяца пришла цифра 7
, то в выходной строке она должна быть представлена как 07
.
printFormattedBirthday(7, 5, 2010); // => 07-05-2010
Как обычно, функцию нужно сделать public static
, а не просто static
, чтобы мы смогли вызвать ее из другого класса.
Советы
Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.