Перегрузка метода
Используемый выше метод max применяется только к данным типа int. Но что, если вы хотите получить максимальное значение двух типов данных с плавающей запятой?
Решение состоит в том, чтобы создать другой метод с тем же именем, но с другими параметрами, как показано в следующем коде:
public static double max(double num1, double num2) { if (num1 > num2) return num1 else return num2;}
Если вы передадите параметр int при вызове метода max, будет вызван метод max параметра int;
Если передан параметр double, будет вызвано тело метода max типа double, что называется перегрузкой метода;
То есть два метода класса имеют одно и то же имя, но разные списки параметров.
Компилятор Java определяет, какой метод следует вызвать, на основе сигнатуры метода.
Перегрузка методов может сделать программу более понятной и легкой для чтения. Методы, выполняющие тесно связанные задачи, должны использовать одно и то же имя.
Перегруженные методы должны иметь разные списки параметров. Вы не можете перегружать методы, основанные исключительно на модификаторах или возвращаемых типах.
область видимости переменной
Область действия переменной — это часть программы, из которой на эту переменную можно ссылаться.
Переменные, определенные внутри метода, называются локальными переменными.
Область действия локальной переменной начинается с ее объявления и заканчивается в конце содержащего ее блока.
Локальные переменные должны быть объявлены до того, как их можно будет использовать.
Область параметров метода охватывает весь метод. Параметр на самом деле является локальной переменной.
Переменные, объявленные в части инициализации цикла for, имеют область действия на протяжении всего цикла.
Но область применения переменной, объявленной в теле цикла, простирается от ее объявления до конца тела цикла. Он содержит объявления переменных, как показано ниже:
Вы можете объявить локальную переменную с одним и тем же именем несколько раз внутри метода в разных невложенных блоках, но вы не можете объявить локальную переменную дважды внутри вложенного блока.