Как вызывать и использовать методы Java

Блок кода с именем, объявление которого происходит внутри класса, называется метод. Этот блок может быть использован много раз. Тем, кому доводилось иметь дело с процедурным программированием, например, работать на Pascal, Модула-2, Fortran или Basic, могут сравнить принцип работы метода с функцией.

Метод, написанный без ошибок, решает много важных задач, но хорошо написанный метод должен решать только одну задачу.

Первое, что надо сделать при работе с методом, объявить его. Далее нужно его определить и после этого провести вызов для объекта или класса, с которым мы будем работать. Как это делать правильно, можно научиться на курсах в лучшем IT-колледже DevEducation.

Стандартные методы, или как их еще называют, встроенные, взаимодействуют со служебными объектами. Возьмем для примера метод print в Java. Его задача – вывод значения в консоль. Вот каким способом его надо вызывать:

System.out.print("Привет, мир!");

Важный момент, о котором нельзя забывать это о поле out у класса System, которое является потоком ввода/вывода.

Java-приложение должно быть работоспособным, в связи с этим в своем базовом классе оно обязательно должно иметь объявленный метод main.

public static void main(String[] args) {
// здесь основной код и вызовы других методов
}

Здесь мы можем наблюдать, как main принимает массив строк. В этом конкретном случае это – параметры запуска.

Объявление и определение

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

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

public static int maxFinder(int a, int b) { //заголовок метода
//ниже — тело метода
int max;
if (a < b)
  max = b;
else
  max = a;
return max;
}

Как мы можем понять, первое, что идет в заголовке – модификаторы. Они должны диктовать условия, согласно которым метод может быть вызван. Давайте рассмотрим, что означают элементы заголовка: int – это возвращаемый тип, maxFinder – это имя метода. Нам еще нужны параметры, которые мы указываем в скобках.

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

К слову, return способен взаимодействовать с выражением, а не только с переменной. Если бы это было конечной целью, то мы получили бы такую строку кода:

return a+b;

Еще два замечания. Мы ставим void, если не предполагается, чтобы метод что-нибудь возвращал. Также мы ничего не пишем в скобках, если входящие параметры вообще не нужны:

static void theWarning() {
System.out.println("Мне ничего не надо, и вы от меня ничего не получите.");
}

Для того, чтобы узнать о методе в Java и научится программировать, как профи, записывайтесь на курсы в лучший международный IT-колледже DevEducation.

Перегрузка методов в Java

Как мы уже говорили выше, метод по своей сути – имя для действия: встать, идти, удалить информацию. Имена при создании кода применяют, в том числе, для упрощения понимания. Программисту нужно четко сформулировать логику, чтобы приложение работало корректно. Программе все равно, какое у метода имя. В первую очередь, понятные названия методов нужны для разработчиков и других “пользователей” кода.

Бывают моменты, когда одно и то же слово может означать разные объекты или действия. Например, “вымыть пол” и “вымыть машину” – это разные действия с одинаковым словом. Написать что-то вроде “половымыть пол” или “машиновымыть машину” – нецелесообразно. Мы делаем методы с одинаковыми именами, но у них должны быть разные наборы аргументов.

Java относится к тем языкам программирования, в которых мы можем создавать какое-то количество методов с одинаковым именем в одном классе. Основное – их параметры должны отличаться по типу или количеству аргументов.

Для примера давайте создадим класс Cat, где будет набор перегруженных методов:
class Cat {
  void meow() {
  // параметры отсутствуют
  }
  void meow(int count) {
  // используется один параметр типа int
  }
  void meow(int count, int pause) {
  // используются два параметра типа int
  }
  long meow(long time) {
  // используется один параметр типа long
  return time;
  }
  double meow(double time) {
  // используется один параметр типа double
  return time;
  }
}

Смело берите какой угодно метод из класса:

Cat kitty = new Cat();
kitty.meow();
kitty.meow(3);
kitty.meow(3, 2);
kitty.meow(4500.25);

Мы без проблем можем увидеть, что за версия вызывается в этих случаях.

Алгоритм вызова

Если нам надо, чтобы метод вызывался из любого необходимого класса или из внешнего файла, мы используем модификатор public. Модификатор private – только внутри своего класса.

Мы можем вызвать статический метод в Java без того, чтобы создавать экземпляр, потому что метод не принадлежит объектам класса, а самому классу. Метод вызова зависит от того, будет он возвращать нам что-то или не будет. Для примера можно сразу вывести возвращаемое значение на экран (как написано в коде):

public static void main(String args[]) {
System.out.print(maxFinder(3,8));
}

Давайте разберемся, что мы только что сделали. Был не только вызван maxFinder, мы впридачу отобразили на экране конечный результат его работы. Для того, чтобы пример был нагляднее и проще, мы установили числовые значения вручную, но в реальной жизни как правило сравниваются переменные.

А сейчас давайте рассмотрим пример с методом, который не должен что-либо возвращать. Мы берем метод theWarning(). Сразу подчеркнем, что данному методу не нужны помощники. Он выполняет свою задачу и передает управление коду, находящемуся дальше.

public static void main(String args[]) {
theWarning();
System.out.print(“theWarning завершил свою работу. Идём дальшe.”);
}

Абстрактные методы

Что такое абстрактный метод? Этот тот, объявление которого состоялось без реализации. Он как привидение – без своего тела. У него даже нет своих фигурных скобок. В этом случае, нам придется воспользоваться модификатором abstract – поставить его перед именем метода.

abstract void methodName();

Абстрактные методы можно объявлять только в абстрактном классе. По сути своей, это шаблон.

Узнавайте и учитесь новому, улучшайте уже имеющиеся знания на курсах в IT-колледже DevEducation. Доступна запись на многие направления и для разных уровней знаний.

Как вызывать методы в Java из другого класса

Давайте пофантазируем. Допустим, произошло какое-то событие, и maxFinder перестал быть статическим и теперь находится в отдельном классе. Как в этом случае действовать? План таков: сначала мы создаем объект класса, в котором гипотетически находится maxFinder. Для простоты давайте думать, что он расположен в классе SampleClass. Вот как происходит вызов в этом случае:

public void main(String args[]) {
SampleClass sc= new SampleClass();
System.out.print(sc.maxFinder(5,8));
}

В случае, если наш метод статический, вызов происходит через точку и от имени класса:

System.out.print(SomeClass.maxFinder(5,8));

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

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!