Вывести результат метода java

Java: Возврат значений

Методы, которые мы определяли в предыдущих уроках, заканчивали свою работу тем, что печатали на экран какие-то данные:

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

Рассмотрим это на примере. Возьмем задачу обработки электронной почты. Когда пользователь регистрируется на каком-то сайте, то он может ввести почту любым способом:

  • Добавить случайно пробелы в начале или в конце _support@hexlet.io__
  • Использовать буквы в разном регистре SUPPORT@hexlet.io

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

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

class App < public static void main(String[] args) < // Получаем адрес из формы var email = " SuppORT@hexlet.IO"; // Обрезаем пробельные символы var trimmedEmail = email.trim(); // Приводим к нижнему регистру var preparedEmail = trimmedEmail.toLowerCase(); System.out.println(preparedEmail); // =>support@hexlet.io // Записываем в базу данных > > 

Этот код стал возможен только благодаря возврату значения. Методы trim() и toLowerCase() ничего не печатают на экран. Они возвращают результат своей работы, и поэтому мы можем записать его в переменные. Если бы они вместо этого печатали на экран, мы бы не могли присвоить результат их работы переменной. Как мы не можем сделать с определенным выше методом greeting() :

// Java будет ругаться, что `greeting()` ничего не возвращает // Код не заработает var message = App.greeting(); 

Изменим метод greeting() таким образом, чтобы он начал возвращать данные, а не печатать их. Для этого нам понадобится выполнить две правки:

  • Описать тип возвращаемых данных — здесь это строка String
  • Выполнить возврат вместо печати на экран

Посмотрим на измененный код:

Вместо void теперь написано String , потому что у метода есть возврат. Так мы указали Java, что результатом работы метода будет строка.

Еще обратите внимание на return – это особая инструкция. Она берет выражение справа и отдает его наружу тому коду, который вызвал метод. Как только Java натыкается на return , выполнение метода на этом завершается:

// Теперь этот код работает var message = App.greeting(); // Мы можем выполнить какие-то действия над результатом System.out.println(message.toUpperCase()); // => WINTER IS COMING! 

Любой код после return не выполняется:

Читайте также:  METANIT.COM

Даже если метод возвращает данные, это не ограничивает его в том, что он печатает. Кроме возврата данных, мы можем и печатать их:

class App < public static String greeting() < System.out.println("Я появлюсь в консоли"); return "Winter is coming!"; >> // Где-то в другом методе программа // и напечатает текст на экран, и вернет значение var value = App.greeting(); 

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

Здесь мы не возвращаем переменную — возвращается всегда значение, которое находится в этой переменной. Ниже пример с вычислениями:

В этом примере в определении метода использовался long , так как возвращается целое число.

Чтобы проверить знания из этого урока, попробуйте ответить на вопрос. Как думаете, что выведет этот код?

// Определение class App < public static int run() < return 5; return 10; >> // Использование App.run(); // => ? 

Задание

Реализуйте статический метод sayHurrayThreeTimes() , которая возвращает строку ‘hurray! hurray! hurray!’.

var hurray = App.sayHurrayThreeTimes(); System.out.println(hurray); // => hurray! hurray! hurray! 

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

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

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

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

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Читайте также:  border-style

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

Источник

Returning a Value from a Method

You declare a method’s return type in its method declaration. Within the body of the method, you use the return statement to return the value.

Any method declared void doesn’t return a value. It does not need to contain a return statement, but it may do so. In such a case, a return statement can be used to branch out of a control flow block and exit the method and is simply used like this:

If you try to return a value from a method that is declared void , you will get a compiler error.

Any method that is not declared void must contain a return statement with a corresponding return value, like this:

The data type of the return value must match the method’s declared return type; you can’t return an integer value from a method declared to return a boolean.

The getArea() method in the Rectangle Rectangle class that was discussed in the sections on objects returns an integer:

// a method for computing the area of the rectangle public int getArea()

This method returns the integer that the expression width*height evaluates to.

The getArea method returns a primitive type. A method can also return a reference type. For example, in a program to manipulate Bicycle objects, we might have a method like this:

public Bicycle seeWhosFastest(Bicycle myBike, Bicycle yourBike, Environment env) < Bicycle fastest; // code to calculate which bike is // faster, given each bike's gear // and cadence and given the // environment (terrain and wind) return fastest; >

Returning a Class or Interface

If this section confuses you, skip it and return to it after you have finished the lesson on interfaces and inheritance.

When a method uses a class name as its return type, such as whosFastest does, the class of the type of the returned object must be either a subclass of, or the exact class of, the return type. Suppose that you have a class hierarchy in which ImaginaryNumber is a subclass of java.lang.Number , which is in turn a subclass of Object , as illustrated in the following figure .

The class hierarchy for ImaginaryNumber

Now suppose that you have a method declared to return a Number :

Читайте также:  Python module log to file

public Number returnANumber()

The returnANumber method can return an ImaginaryNumber but not an Object . ImaginaryNumber is a Number because it’s a subclass of Number . However, an Object is not necessarily a Number — it could be a String or another type.

You can override a method and define it to return a subclass of the original method, like this:

public ImaginaryNumber returnANumber()

This technique, called covariant return type, means that the return type is allowed to vary in the same direction as the subclass.

Note: You also can use interface names as return types. In this case, the object returned must implement the specified interface.

Источник

Вывод результата работы метода на консоль

И есть класс с «мэйном» в котором создан экземпляр класса First, и через который я вызываю метод say через экземпляр класс. и в этом методе я ХОЧУ вывести тело метода say, но компилятор мне пишет ошибку что
«Cannot resolve method ‘println(void)»- не могу выполнить метод. Вопрос почему? я через экземпляр класса вызываю метод в котором прописано что нужно вызвать инструкцию, которая выведет на консоль «System.out.println(total);
System.out.println(x);
»
Вопрос почему он не хочет вывести мне мотод на консоль (точнее его два инструкции. ). Помогите начинающему!

public class Start { public static void main (String [] args) { First first=new First(); System.out.println(first.say()); } }

Вывод результата работы команды не в консоль, а в textEdit
Команда qDebug() << system("lspci -b") выводит результат в консоль. Как сделать, чтобы эта команда.

Вывод результата программы на консоль
Скажите пожалуйста как можно прописать функцию Main, чтобы вывести результат программы на консоль.

Многопоточный поиск в массиве и вывод результата в консоль и файл
Всем привет. С наступающим праздником. Начинаю потихоньку осваивать многопоточность. Придумал.

подсчитать количество нечетных значений элементов массива и вывод результата на консоль СИ
подсчитать количество нечетных значений элементов массива и вывод результата на консоль на языке СИ.

метод say ничего не возвращает, поэтому ту не можешь его запихнуть println()
убери System.out. оставь только first.say();

Ты хочешь вывести на консоль сам код метода чтоли? Эм, даже не знаю, возможно ли это сделать. Если только сохранить сначала все в файл, а потом уже считывать строки кода этого метода.

Или ты хочешь вывести значение total и x? Тогда

Источник

Оцените статью