Что такое метод в java

Что такое метод в java

Класс может содержать методы — один, два, три и больше в зависимости от сложности класса. Название метода всегда завершается двумя круглыми скобками, после которых идет блок кода, обрамлённый фигурными скобками. Например, метод sayMeow() класса Cat выводит мяуканье кошки. Внутри имени метода могут быть параметры, например, sayMeow(3) — кошка мяукает три раза. Параметров может быть несколько, тогда они разделяются запятыми.

Общая форма объявления метода выглядит следующим образом:

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

Методы могут вызывать другие методы.

Каждый метод начинается со строки объявления внутри круглых скобок, которую называют сигнатурой метода:

Если рассмотреть данный метод, то можно сказать следующее. Ключевое слово public означает, что метод доступен для любого класса. Ключевое слово static означает, что нам не нужно создавать экземпляр (копию) объекта Cat в памяти. Ключевое слово void означает, что метод не возвращает никаких данных. Именем метода является слово перед круглыми скобками.

Если метод возвращает какие-то данные, то в теле метода используется оператор return значение, где значение — это возвращаемое значение. Тогда вместо void нужно указать возвращаемый тип.

Вспомним наш класс Box, в котором определены высота, ширина и глубина ящика. Зная эти величины, мы вычисляли объём коробки самостоятельно. Но мы можем расширить возможности класса, чтобы он сам мог вычислить объём внутри класса и предоставить нам готовые данные. Давайте добавим в класс новый метод:

Теперь пробуем вычислить объём коробки с помощью готового метода, который есть в классе:

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

Обращение к методу осуществляется как и к переменной через точку. Наличие круглых скобок позволяет различать метод от имени переменной. То есть, если вы увидите запись:

Выше приведён немного искусственный пример, так как опытный программист никогда не назовёт переменную именем getVolume. Существует рекомендация, что для методов в начале имени нужно использовать глагол и начинаться имя должно с маленькой буквы — переменные так называть не следует.

Использование параметров

Параметры позволяют работать с различными данными. Допустим, мы хотим вычислить площадь прямоугольника со сторонами 3 и 5 см.

Метод работает, но область его применения слишком ограничена. Мы сможем вычислять площадь только одного прямоугольника с жёстко заданными размерами. Но прямоугольники бывают разными и нам нужен универсальный метод. Добиться решения задачи можно с помощью параметров. Перепишем метод следующим образом:

Теперь мы можем вычислять площадь любого прямоугольника, зная его размеры. Возьмём тот же прямоугольник со сторонами 3 и 5 см и вычислим его площадь:

В правильно написанных классах стараются избегать доступа к переменным класса напрямую. Следует использовать методы, которые позволяют избежать ошибок. В нашем классе Box использовались отдельные переменные width, height, depth. Код с использованием этих переменных слишком громоздкий, кроме того вы можете забыть про какую-нибудь переменную. Добавим в класс новый метод, который упростит наш код для вычисления объёма ящика:

Пробуем класс в действии:

Теперь мы не обращаемся к отдельным переменным класса, а вызываем метод setDim() для установки размеров ящика, после чего можно вызвать метод getVolume() для вычисления объёма. Естественно, вы можете реализовать свою логику в классе. Например, вы можете создать метод getVolume() с параметрами, которые отвечают за размеры ящика и возвращать сразу готовый результат.

Читайте также:  Сброс памперса эпсон sx130

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

Метод — имя для действия: прыгнуть, мяукнуть, отформатировать диск. Использование имён при написании кода упрощает её понимание и модификацию. Работа разработчика схожа с работой писателя — в обоих случаях требуется донести свою мысль до читателя/приложения.

Часто одно и то же слово имеет несколько разных значений — оно перегружено. Например, мы говорим "вымыть посуду" и "вымыть кота". Было бы глупо говорить "посудовымыть посуду" или "котовымыть кота", чтобы подчеркнуть разницу. Также и с методами. Можно создавать методы с одинаковыми именами, но с разным набором аргументов.

Java, как и многие языки программирования, разрешает создавать внутри одно класса несколько методов с одним именем. Главное, чтобы у них различались параметры. Параметры могут различаться типами или количеством аргументов. Будьте внимательны, если вы зададите различные типы для возвращаемого значения, то этого будет недостаточно для создания перегруженной версии метода. Когда Java встречает вызов перегруженного метода, то выбирает ту версию, параметры которой соответствуют аргументам, использованным в вызове.

Создадим класс Cat с набором перегруженных методов:

Вы можете вызвать любой метод из класса:

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

Аналогично, перегрузка используется и для конструкторов.

Методы с переменным числом параметров

Можно создавать методы с переменным числом параметров. В этом случае используется многоточие.

По сути, создаётся массив типа Object[].

Создадим метод, вычисляющий и возвращающий максимальное из произвольного количества значений.

До Java 5 использовался следующий способ.

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

Метод toString()

Каждый класс реализует метод toString(), так как он определён в классе Object. Но использовать метод по умолчанию не слишком удобно, так как не содержит полезной информации. Разработчики предпочитают переопределять данный метод под свои нужды. Сам метод имеет форму:

Вам остаётся возвратить объект класса String, который будет содержать полезную информацию о вашем классе. Давайте возьмём для примера класс Box, созданный выше:

Теперь можете узнать о классе Box:

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

Как вернуть из метода больше одного значения?

Методы в Java возвращают одно значение. А если хочется сразу вернуть сразу два и более значений? Например, у нас имеется массив чисел и мы хотим написать метод, который сразу возвращает минимальное и максимальное значение из него.

Одно из решений заключается в том, что нужно "запаковать" два значения полученные в одном методе с помощью конструктора специального класса, а затем "распаковать" их в другом методе, при обращении к конструктору.

СОЗДАНИЕ ПРИЛОЖЕНИЙ

Урок 17. Циклы и методы в Java (часть 2)

Урок 17. Циклы и методы в Java (часть 2)

Методы в Java

Что же такое метод в Java? Метод – это совокупность переменных и выражений, расположенных в определённой последовательности. Метод, по сути, выполняет какое-то действие и количество таких действий неограниченно. Мы с вами уже использовали методы в нашем приложении, просто мы не заглядывали внутрь.

Структура метода

Первая часть метода, с которой мы с вами познакомимся – объявление метода (signature). Выдуманный пример:

Добавьте после объявления метода знакомую нам пару – открывающуюся и закрывающуюся фигурные скобки <>, добавьте код между скобками, и вы получите готовый метод. Еще один пример:

После этого мы можем использовать этот метод в другой части кода нашего приложения:

Читайте также:  Рейтинг недорогих радар детекторов 2018

В том месте, где мы вызываем метод setCoordinates выполнение нашей программы будет переходить к коду, который содержится в этом методе и будет выполняться до тех пор, пока не достигнет конца или не будет возвращен (return). Затем код продолжится со следующей строки после вызова метода.

Вот пример метода, который вернет (return) значение коду, который его вызвал:

Вызов использования этого метода может выглядеть вот так:

Естественно, нам нет нужды создавать методы, которые будут складывать две переменные, но предыдущий пример помогает нам немного прояснить суть методов. Сперва мы передаём значения 2 и 4. В объявлении (signature) метода значение 2 передаётся переменной a типа int, а значение 4 передаётся переменной b типа int. Внутри тела метода переменные a и b складываются и используются для инициализации новой переменной answer типа int. Строка return answer; возвращает значение, хранящееся в переменной answer коду, который вызвал метод addAToB и, следовательно, присваивается переменной myAnswer. Теперь myAnswer хранит в себе значение 6.

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

Теперь разберёмся с объявлением метода. Разобьём его на части и изучим каждую часть отдельно:

Модификатор доступа | возвращаемый тип | имя метода (параметры)

Вот примеры, которые нам уже знакомы, чтобы вам легче было определить, что к чему относится:

Часть объявления Пример
Модификатор доступа public, private и т.д.
Возвращаемый тип int, boolean, float, или же Java-объект,выражение,тип
Имя метода shootLazers, setCoordinates, addAToB и т.д.
Параметры (int number, string type), (int x, int y), (int a, int b) и т.д.

Модификатор доступа

В предыдущих примерах мы применяли модификатор доступа дважды, отчасти потому что это не обязательная часть для существования. Модификатор доступа определяет, в какой части кода этот метод может быть вызван. На самом деле и обычная переменная тоже может иметь модификатор доступа, например:

Модификаторы доступа являются важной темой в Java, но поближе мы с ними познакомимся после того, как пройдём урок по Объектно-Ориентированному подходу в программировании.

Возвращаемый тип (return)

Следом идёт возвращаемый тип. Как и модификатор доступа, возвращаемый тип не является обязательным, хотя он более используемый. Мы уже знаем, что методы могут сделать все, что угодно. Но что если нам нужен результат от того, что они сделали? Самый простой пример возвращаемого типа, который мы видели до сих пор, это:

В этом фрагменте возвращаемый тип выделен – int. Метод addAToB возвращает обратно (return) коду, который вызвал этот метод, значение, которое поместится в переменную типа int.

Возвращаемым типом может быть любой тип данных Java, с которыми мы уже встречались. Метод, однако, не обязан возвращать значение. На этот случай мы в объявлении метода должны использовать ключевое слово void в качестве возвращаемого типа. Когда мы используем ключевое слово void тело метода не должно пытаться вернуть значение, поскольку это вызовет ошибку компилятора. Однако допускается использование слова return без значения. Ниже приведены некоторые комбинации возвращаемого типа и допустимые значения ключевого слова return:

Комбинация с использованием return:

Еще одно сочетание void и return:

Теперь можем вызвать каждый из предыдущих методов в другом коде:

Имя метода

Когда мы разрабатываем собственный метод – то имя может быть дано произвольно, но существует негласная договорённость использовать глаголы, которые вносят ясность в то, для чего этот метод создан. Другая договорённость заключается в том, чтобы первая буква первого слова в имени начиналась со строчной (маленькой), а первые буквы в каждом последующем слове с прописной (большой). Это называется «верблюжийРегистр». К примеру следующий код абсолютно законен и будет выполнен:

Читайте также:  К основным устройствам компьютера относятся

Теперь рассмотрим примеры именования согласно договорённости:

Так гораздо понятнее для чего создан метод. Перейдём к параметрам.

Параметры

Мы уже знаем, что метод может вернуть какой-нибудь результат коду, который его вызвал. Что делать если этот метод нужно не только вызвать, но и передать ему какую-то информацию? Для этой цели мы используем параметры, с помощью которых мы передаём значения методу. Мы уже видели пример метода с параметрами, взглянем на него еще раз:

Параметры в этом примере выделены. Обратите внимание на то, что в теле метода мы используем a + b так, как будто они уже были объявлены и инициализированы. На самом деле так и есть. Параметры в объявлении метода – это и есть их объявление, а код, который вызывает метод как раз их инициализирует:

Более того, int — это не единственный тип данных, с которым мы можем иметь дело в параметрах метода. Мы можем задействовать в параметрах любые типы данных Java, даже те, что будем разрабатывать собственноручно. Мы можем смешивать их и использовать в любом количестве, которое нам нужно для решения нашей проблемы:

Тело метода

До этого момента в теле метода мы с вами писали лишь комментарии. По сути вы и так уже знаете, что нужно делать. Любой синтаксис Java будет работать в теле метода.

Это была теория. В следующем уроке напишем на практике несколько методов для закрепления материала, а после создадим свои методы и внедрим их в наше приложение.

Методы в Java

Методы в Java — это законченная последовательность действий (инструкций), направленных на решение отдельной задачи. По сути, это функции (они же процедуры, подпрограммы) более ранних, не ООП языков. Только эти функции являются членами классов и для различия с обычными функциями, согласно терминологии объектно-ориентированного программирования, называются методами.

Методы определяются всегда внутри классов:

foo — это метод, который мы определили в классе Main, давайте его рассмотрим.

  • public — тип доступа (метод может вызываться из другого класса). Существуют и другие типы доступа, к примеру private (метод доступен только внутри класса) и protected (о нем мы будем говорить позже).
  • static означает что метод статический, он принадлежит классу Main, а не конкретному экземпляру класса Main. Мы можем вызвать этот метод из другого класса так: Main.foo() .
  • void значит, что этот метод не возвращает значение. Методы могут возвращать значение в Java и оно должно быть определено при объявлении метода. Однако, вы можете использовать return просто для выхода из метода.
  • Этот метод не получает никаких аргументов, но методы java могут получать аргументы, как мы увидим далее на примерах.

Если тип возвращаемого значения не void, в теле метода должен быть хотя бы один оператор

return выражение;
где тип выражения должен совпадать с типом возвращаемого значения. Этот оператор возвращает результат вычисления выражения в точку вызова метода.
Если тип возвращаемого значения – void, возврат из метода выполняется либо после выполнения последнего оператора тела метода, либо в результате выполнения оператора
return;
(таких операторов в теле метода может быть несколько).
Пример объявления метода, возвращающего значение типа int – сумму двух своих параметров типа int:

Ссылка на основную публикацию
Что такое автозагрузка в компьютере
Автозагрузка в Windows 10 В Windows 10 есть много интересных особенностей. Но сейчас речь пойдет о такой штуке, как автозагрузка....
Чернила светятся в ультрафиолете
Употребление симпатических (невидимых) чернил подразумевает запись неразличимую в обычных обстоятельствах, но появляющуюся после фото, химической или физической проявки. Это есть...
Чернила для принтера в шприцах
Заправочные комплекты INKO в шприцах 3х20 мл., с высококачественными чернилами на основе красителя (Dye ink) и пигментные чернила (Pigment ink)...
Что такое айти специалист
Именно в ИТ стремится перейти больше всего представителей других профессиональных областей — там хотел бы работать каждый пятый российский соискатель....
Adblock detector