Перейти к содержимому

Как написать метод в java

  • автор:

Как написать метод в java

Чтобы написать метод в Java , необходимо следовать этим шагам:

1 Определите класс, в котором вы хотите создать метод. Для создания нового метода в классе Java откройте файл с расширением .java , который содержит определение класса.

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

 доступа>  возвращаемого значения>  метода>( параметров>) < //тело метода >
  • — это ключевое слово, которое определяет, кто имеет доступ к методу, например, public , private или protected
  • — это тип данных, который возвращает метод. Если метод не возвращает значение, то используется ключевое слово void
  • — это имя метода
  • — это параметры метода, если они есть

3 Напишите код метода, который будет выполняться при вызове. Тело метода находится внутри фигурных скобок <> . Это место, где вы определяете операции, которые должны выполняться при вызове метода.

4 Вызовите метод из вашего кода. Для вызова метода, вы должны использовать имя метода и передать значения параметров, если они есть. Например, если вы определили метод helloWorld() в классе MyClass , то вызов метода будет выглядеть так:

MyClass obj = new MyClass(); obj.helloWorld(); 

Это создаст новый объект класса MyClass и вызовет метод helloWorld()

Методы в Java: объявление, определение и вызов

Метод в Java – это набор операторов, сгруппированных для выполнения операции.

Например, при вызове метода System.out.println() система фактически выполняет несколько операторов, чтобы отобразить сообщение на консоли.

Синтаксис

modifier returnType nameOfMethod (Parameter List) < // method body >

Синтаксис, показанный выше, включает в себя –

  • modifier – это определяет тип доступа метода и не является обязательным для использования.
  • ReturnType – метод может возвращать значение.
  • NameOfMethod – это имя метода. Подпись метода состоит из имени метода и списка параметров.
  • Parameter List – Список параметров, типа, порядок и количество параметров методы. Они являются необязательными, способ может содержать ноль параметров.
  • method body – Тело метод определяет то, что делает метод с заявлениями.

Написание метода

Следующий код демонстрирует, как написать метод в Java. Этот метод принимает два параметра num1 и num2 и возвращает максимум между двумя –

Пример

public static int minFunction(int n1, int n2) < int min; if (n1 >n2) min = n2; else min = n1; return min; >

Объявление метода в Java

Синтаксис

modifier return_type method_name(parameters_list) < //method body >
  • modifier – Он определяет тип доступа метода, и это не является обязательным для использования.
  • return_type – Метод может возвращать значение.
  • method_name – это имя метода. Подпись метода состоит из имени метода и списка параметров.
  • parameters_list – список параметров, типа, порядок и ряд параметров методы. Они являются необязательными, способ может содержать ноль параметров.
  • method body – Тело метод определяет то, что делает метод с заявлениями.

Вызов метода в Java

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

Пример

Ниже приводится пример, чтобы показать, как определить метод и как его вызвать –

public class ExampleMinNumber < public static void main(String[] args) < int a = 11; int b = 6; int c = minFunction(a, b); System.out.println("Minimum Value EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="eclipse">Minimum value = 6

Средняя оценка 2.8 / 5. Количество голосов: 6

Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

Напишите комментарий, что можно добавить к статье, какой информации не хватает.

Методы в Java

Привет! Это статья про основу основ Java и программирования вообще — про методы. В данной статье мы поэтапно объясним что такое методы в Java и зачем они нужны на конкретном примере. А в конце статьи Вы найдете ссылку на задачи, чтоб закрепить полученные знания на практике ��

Что такое метод?

Любой код на Java, который Вы откроете, будет состоять из методов. Можно сказать, это строительные «блоки», из которых состоит программа:

Метод в двух словах

Если Вы видите в программе какое-то слово, а затем круглые скобки — значит это метод:

слово()

Например — это названия 4 методов:

println()

hasNextInt()

getNumber()

main()

Зачем же они нужны?

Давайте поясним на примере. Представьте, что мы пишем программу-калькулятор.

В упрощенном виде программа-калькулятор должна выполнять 4 базовые операции: сложение, вычитание, умножение и деление. Поэтому, если бы мы писали программу-калькулятор, мы бы попросили пользователя:

1. Ввести 2 числа

2. Ввести операцию: «+» для сложения, «-» для вычитания, «*» для умножение и «/» для деления

Поэтому мы бы написали следующий код:

import java . util . Scanner ;
public class Calculator < public static void main ( String [ ] args ) < double num1 = getNumber ( ) ; double num2 = getNumber ( ) ; char operation = getOperation ( ) ; double result = calc ( num1 , num2 , operation ) ; System . out . println ( "Результат:" + result ) ;

Обратите внимание: этот только часть кода программы, а именно главный метод main. Если Вы попытаетесь запустить данный код у себя на компьютере, получите ошибку. Полную версию кода мы покажем ниже.

Что мы тут видим? На самом деле, в каждой строчке выполняется метод:

Все, что подчеркнуто — методы. И да-да, main — это тоже метод! Если записать схематически, то получим:

Что делают все эти методы? Какая логика этого кода?

Давайте объясним это так. Каждый метод отвечает за какое-то действие:

Два типа методов

В коде Вы можете увидеть:

  • методы, которые видите впервые — эти методы мы написали сами:

Таким образом, все виды методов в Java можно поделить на две категории:

1. Стандартные, то есть написанные в стандартных библиотеках Java. Просто берешь нужный метод и используешь.

2. Пользовательские, то есть методы, которые Вы сами написали.

Как методы располагаются в программе

Мы уже говорили, что метод — это «строительный блок» программы. Как же они располагаются в программе?

Схематически это можно показать так:

Но выше, когда мы показывали код программы калькулятор, у нас был только один метод — main(). Как мы писали, это была только часть кода. Давайте теперь покажем весь — только не пугайтесь ��

import java . util . Scanner ;
public class Calculator < public static void main ( String [ ] args ) < double num1 = getNumber ( ) ; double num2 = getNumber ( ) ; char operation = getOperation ( ) ; double result = calc ( num1 , num2 , operation ) ; System . out . println ( "Результат:" + result ) ; public static double getNumber ( ) < Scanner sc = new Scanner ( System . in ) ; System . out . println ( "Введите число:" ) ; if ( sc . hasNextDouble ( ) ) < return sc . nextDouble ( ) ; System . out . println ( "Ошибка при вводе. Повторите ввод" ) ; return getNumber ( ) ; public static char getOperation ( ) < Scanner sc = new Scanner ( System . in ) ;

System . out . println ( «Выберите номер операции:\n1 — прибавить\n2 — отнять\n3 — умножить\n4 — разделить» ) ;

int operationNumber = 0 ;
if ( sc . hasNextInt ( ) ) < operationNumber = sc . nextInt ( ) ; System . out . println ( "Вы ввели не число! Повторите ввод!" ) ; return getOperation ( ) ; switch ( operationNumber ) < System . out . println ( "Неправильная операция! Повторите ввод!" ) ; return getOperation ( ) ; public static double add ( double num1 , double num2 ) < return num1 + num2 ; public static double sub ( double num1 , double num2 ) < return num1 - num2 ; public static double mul ( double num1 , double num2 ) < return num1* num2 ; public static double div ( double num1 , double num2 ) < if ( num2 ! = 0.0 ) < return num1 / num2 ; System . out . println ( "На 0 делить нельзя!" ) ; return Double . NaN ; public static double calc ( double num1 , double num2 , char operation ) < switch ( operation ) < return add ( num1 , num2 ) ; return sub ( num1 , num2 ) ; return mul ( num1 , num2 ) ; return div ( num1 , num2 ) ; return Double . NaN ;

Много? Давайте представим этот код схематически:

А теперь на пару секунд отойдем от нашего примера и посмотрим, как строится каждый конкретный метод.

Как же строится метод?

Давайте посмотрим на самый простой метод:

Тааак, что мы тут имеем? Если присмотреться, мы видим знакомые слова — int, метод println(). Из незнакомого только слово void, с ним мы разберемся чуть позже:

Отлично! Половина есть �� Так что же все это значит?

Как Вы могли догадаться, myMethod — это название метода.

Название метода должно быть уникальным. Если название состоит из нескольких слов, напишите его, используя CamelCase (что такое «CamelCase» можно прочитать в данной статье).

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

Таким образом для того, чтобы метод выполнился, ему нужно в скобочках записать число (в терминологии методов это называется «передать значение в метод») типа int. Таким образом оно автоматически подставится в переменную х и будет доступно внутри метода. Кстати, то, что метод принимает, в данном случае int x, называется параметром метода.

То, что записано перед названием метода, то есть перед myMethod , это то, что метод возвращает.

Что значит возвращает? «Возвращает» — это значит, что после того, как метод выполнился, мы можем получить определенное число, строчку или другое значение, которое нужно использовать в том месте, где метод вызван.

Таким образом, как видите, перед значением, которое нужно вернуть, пишется специальное слово return. Обратите внимание, что значение, которое возвращает метод, должно быть того же типа, который записан перед названием метода. В нашем случае double. Собственно говоря, поэтому мы считываем с консоли именно nextDouble().

А что же такое за слово void, которое записано в предыдущем примере перед названием метода? Перед названием метода записывается слово void (с англ. «пустота»), если метод не должен ничего возвращать. То есть метод выполнил код, а в место, где он вызван, он ничего не возвращает. Примером такого метода может быть метод println(), который мы используем в System.out.println(). Все, что нужно от метода, — это вывести в консоль значение. И все. Мы же ничему не присваиваем System.out.println() ? Нет. Таким образом можно отличать методы, которые что-то возвращают и «войдовские» методы:

  • если вызов метода мы чему-то присваиваем — метод возвращает определенное значение
  • если же просто вызываем метод в отдельной строчке — этот метод «войдовский»

Ок, это уяснили. Вернемся к нашему простому примеру.

То есть я — метод с названием myMethod(). Я принимаю на вход какое-то число x, которое обязательно должно быть integer.

Принимать метод может и несколько переменных или другими словами параметров, но возвращать — только одну:

Если Вы хотите передать несколько параметров методу — пишите их через запятую:

Как видите, мы передали методу myMethod() 3 параметра:

  • int x — то есть какое-то число x, которое обязательно должно быть integer
  • String s — какую-то строку (слово или фразу)
  • long l — какое-то число l, которое должно быть long типа

Помимо параметров, есть еще такое понятие как «тело метода». С этим все просто: все, что написано в фигурных скобках <> — это тело метода. То есть это код, который должен выполнять метод. В данном примере в теле метода только 1 строчка кода:

  • System.out.println(«You enterеd number » + x);

А значит метод myMehod() всего-навсего выводит в консоль введенное пользователем число.

На практике

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

Что делает каждый метод?

Начнем с метода main(), который задает общую логику нашей программы:

Методы в Java

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

 public String constructHelloSentence(String name)

Тут ничего сложного: метод Java, задача которого сформировать строку приветствия, с именем, которое мы ему передаем. Как например — Hello world! My name is Bobby Давайте как следует разберемся с построением метода, рассмотрев каждое ключевое слово в объявлении метода (слева направо). Наше первое ключевое слово — public , и оно обозначает модификатор доступа:

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

Методы в Java - 3

Указывают допустимую область видимости для членов класса, то есть ограничение мест, в которых разрешается использовать какую-то переменную или метод. В языке Java применяют такие модификаторы доступа:

  • public : публичный. Методы или поля с этим модификатором общедоступны, видимы другим классам (а точнее, их методам и полям) из текущего пакета и из внешних пакетов. Это самый широкий уровень доступа из известных;
  • protected : к методам или переменным с этим модификатором есть доступ из любого места в текущем классе или пакете, или в классах, наследующих данный, а заодно — и методы или поля, даже если они находятся в других пакетах
 protected String constructHelloSentence(String name)
 String constructHelloSentence(String name)
 private String constructHelloSentence(String name)

Telegram

Далее мы имеем String в сигнатуре метода (первая строка метода, описывающая его свойства).

Возвращаемое значение

Возвращаемое значение — это данные (некий результат выполнения метода), которые приходят на его место после вызова. Каждый метод имеет возвращаемое значение. Или нет?

Методы с возвращаемым значением

Это значение может быть данными любого вида: как переменной простого типа, так и ссылочного. В рассматриваемом примере мы указываем, что метод должен вернуть объект типа String , что как мы помним, является классом, описывающим строку. Второй момент здесь — слово return . Оно имеет прямое отношение к возвращаемому значению: значение, стоящее после него, будет отправлено назад, на место вызова метода, а сам же метод после return закроется. Это слово обычно идёт в последней строке метода (кроме методов с различными ветвлениями типа if, else.. .). Если написать код в следующей строке после return :

 private String constructHelloSentence(String name)

то мы получим ругательства компилятора, что не очень хорошо (компилятор ерунду не посоветует). Также нужно помнить, что тип данных после с должен совпадать с объявленным в сигнатуре метода. Подробнее о return читайте здесь.

void

Для каких служит void в Java? Не у всех методов есть возвращаемое значение. Некоторым или нечего, или не нужно ничего возвращать. Что же тогда делать? Тогда в сигнатуре метода на место возвращаемого значения мы пишем void . Как бы выглядел наш метод без возвращаемого значения?

 protected void constructHelloSentence(String name)

Вы наверняка заметили, что вместе с возвращаемым значением у нас исчезло слово return Так и есть, ведь наш метод и не должен ничего возвращать. Тем не менее, его можно тут поставить, но без какого-то значения, просто return ; в последней строке. Это в целом бесполезно, поэтому в методах с void он необязателен. Тем не менее, его можно применять с пользой в void методах, например, при ветвлениях или циклах, когда нужно немедленно выйти из метода. Далее в объявлении метода у нас шло constructHelloSentence .

Названия методов

Методы в Java - 4

constructHelloSentence — название метода, отличительная особенность, по которой мы сможем отличать тот или иной метод. И, соответственно, вызывать тот или иной метод. Названия методов должны начинаться с маленькой буквы, но и использовать верблюжий стиль (CamelCase, верблюжий регистр): т.е. каждое следующее слово в названии стоит впритык к предыдущему и пишется с большой буквы. Наименования методов должны описывать метод (лучший комментарий — правильное именование). Для этого используйте глаголы или сочетания с глаголами: getCat , delete , createCar , и так далее. В пределах одного класса имена методов должны быть уникальными (не считая перегрузки методов, о чем поговорим немного ниже). Смотрим дальше разбираемый нами метод и видим ( String name )

Параметры метода

Методы могут иметь (или не иметь) определенные данные, которые будут поступать снаружи, а именно — с места, где и был вызван метод. В нашем случае мы видим, что приходит объект типа String с именем name и в дальнейшем мы используем эту переменную в нашем методе. В методе можно использовать неограниченное количество параметров, но больше 7 — не рекомендуется. Когда мы не знаем точное количество элементов, но все эти элементы нужны для одной цели и будут одного типа (например, String ), используется многоточие:

 public void constructHelloSentence(String. name)

Обращение к каждому элементу будет такого вида: name[0] Ничего не напоминает? Верно, массив! Ничего не изменится, если мы напишем:

 protected void constructHelloSentence(String[] name)

Обращение к элементам также будет вида: name[1] И ещё кое что. Аргументы метода могут быть final:

 public String constructHelloSentence(final String name)

Это значит, что ссылка name привязана к конкретному объекту String , и переопределить её нельзя. Про работу с ссылочными переменными и их взаимодействие с зарезервированным словом final можно прочитать в материале “Ссылочные типы данных в Java”.

Вызов методов

Методы в Java - 5

Итак, с созданием методов разобрались, теперь давайте поговорим об их использовании. Как вызвать метод в Java? Каждый метод в Java находится в классе. Чтобы разобраться, как устроен вызов методов в Java, возьмем класс:

 public class StringConstructor < public String constructHelloSentence(String name) < String resultSentence = "Hello world! My name is " + name; System.out.println(resultSentence); return resultSentence; >> 

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

 class Application < public static void main(String[] args) < StringConstructor stringConstructor = new StringConstructor(); stringConstructor.constructHelloSentence("Den"); >> 

В аргументы нашего метода мы передали строку (имя), которую хотим видеть в результирующей строке, выведенной на экран:

 Hello world! My name is Den 

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

this

Часто в коде можно увидеть ключевое слово this , как например в сеттерах:

 public void setValue(Long value)

И что же оно значит? this в Java — это ссылка на текущий объект данного класса. Например, если мы создали объект:

 StringConstructor stringConstructor = new StringConstructor(); 

то this внутри объекта stringConstructor будет ссылкой на этот же объект. this используется как для ссылки на переменную объекта (как в сеттере выше), так и для вызова некоторого метода. Мы можем немного переписать наш класс:

 public class StringConstructor < public String constructHelloSentence(String name) < String resultSentence = this.getSentence() + name; System.out.println(resultSentence); return resultSentence; >private String getSentence() < return "Hello world! My name is "; >> 

Python-университет

Через this мы вызываем метод данного объекта, для взятия необходимой строки. Но всё же как правило для методов this почти не используется, так как и без него идёт ссылка на метод данного объекта, в основном он используется для на переменную объекта.

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

Методы в Java - 7

Предположим нам понадобился метод, выполняющий по сути ту же самую логику, но в предложении Hello world ! вместо world мы хотим вставить своё слово (строку). Но ведь у нас уже есть метод constructHelloSentence . Значит, нам нужно придумать новое название для метода, который выполняет по сути тот же функционал? Как бы не так: в этот момент на помощь нам приходит перегрузка методов. Перегрузка методов — это использование одного и того же имени метода несколько раз при его объявлении в классе. С точки зрения синтаксиса языка, не может быть двух одинаковых имен в некотором локальном пространстве. Но при этом допускается объявление методов с одинаковыми именами но отличающимися аргументами. Иными словами, класс содержит в себе перегруженные, когда есть два и более методов с одинаковыми названиями, но различными входными данными:

 public class Constructor < public String constructHelloSentence(String name) < String resultSentence = "Hello world! My name is " + name; System.out.println(resultSentence); return resultSentence; >protected String constructHelloSentence(String firstName, String secondName) < String resultSentence = "Hello " + firstName + "! My name is " + secondName; System.out.println(resultSentence); return resultSentence; >> 

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *