JavaRush/Java блог/Архив info.javarush/level02.lesson01.task01 Что означает "Реализовать метод"?...

level02.lesson01.task01 Что означает "Реализовать метод"?

Статья из группы Архив info.javarush
участников
Доброго времени суток всем! Друзья, помогите разобраться в условии задачи пожалуйста. level02.lesson01.task01 Что означает Вот условие: "Реализуй метод print. Метод должен вывести на экран переданную строку 4 раза. Каждый раз с новой строки." Я не могу понять что нужно сделать так как не понимаю что означает "реализовать метод". Во всех лекциях до этого задания, ничего про "реализовать метод" не было сказано. А я до этих лекций совсем ничего не знал о Java. Поэтому фраза "реализуй метод" для меня совсем ничего не означает. Будьте так добры, объясните человеческим языком что означает это странное "реализовать метод". Потому что без понимания этого я не смогу додуматься как решить всю задачу и в последствии все похожие задачи... :( Спасибо всем за ответы и советы. П.С. вот само задание: package com.javarush.test.level02.lesson01.task01; / Реализация метода Реализуй метод print. Метод должен вывести на экран переданную строку 4 раза. Каждый раз с новой строки. /
public class Solution

{ public static void main(String[] args)

{
   print("Java easy to learn!");
}
public static void print(String s)
{
    //напишите тут ваш код
}
}
Комментарии (21)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Alesha
Уровень 22
31 мая 2018, 11:50
В общем то задача вполне решаемая, только сильно сбивает с толку второе условие "2. Метод main не должен вызывать System.out.println или System.out.print." Складывается впечатление, что нельзя использовать команды System.out.println или System.out.print, а других команд для вывода текста я пока не знаю. Но, оказалось что на самом деле эти команды использовать можно, а самое главное нужно.
Līga
Уровень 4
15 марта 2019, 14:23
Спасибо, сразу стало понятно. Нужно просто внимательно читать :)
25 мая 2018, 15:36
От автора поста (AndrewR): Разобрался только что как говорят "методом тыка". Просто пробовал "от фонаря" разные варианта. И О ЧУДО !!! сделалось оно как-то. Оказывается: на экран нужно вывести это ."Java easy to learn!". То есть print("Java easy to learn!"); ниже превращается просто в s. А далее нужно вывести s на экран 4 раза через System.out.println.
25 мая 2018, 15:34
От Зубрилкин: Вам нужно в теле метода вывести надпись 4 раза на консоль. надпись в метод попадает в виде параметра s. Это и будет реализацией метода, проще говоря реализовать, значит заставить выполнять поставленое условие.
25 мая 2018, 15:09
От fatfaggy: ну, грубо говоря, "реализуй метод" значит "сделай так, чтоб работало" :) в вашем случае, надо сделать так, чтоб этот метод выводил на экран переданную ему строку 4 раза. то-есть, вам дали пустой метод, который ничего не делает, а вам надо написать такой код внутри этого метода, чтоб он выполнял поставленную вам задачу :) если у вас возникает вопрос какую именно строку надо выводить на экран - то это ту строку, которую этот метод принимает. ваш метод принимает только один параметр, это то, что указано в скобочках там
public static void print(String s)
{
    // тут вы должны написать ваш код
}
то-есть он принимает какие-то данные типа String (вы уже знаете, что это строка так в джаве называется) и сразу же сохраняет эти данные в переменную s. получается, что когда вы будете в вашей программе вызывать этот метод - то вы сможете передать в него любую строку. вашему методу без разницы какая это строка. он должен просто вывести эту строку, которую он сохранил в переменную s, 4 раза :) это очень удобно, так как вы можете даже понятия не иметь что там будет за строка, но ваш метод будет исправно работать с любой строкой. примеры, как вы сможете вызывать этот метод:
public static void main(String[] args)
{
    print("Kill all humans!");
    print("Бла-бла-бла");
    print("Я - строка, и меня сейчас напечатают 4 раза подряд!");
    String anotherString = "А я - тоже строка, но уже совсем другая. Но методу все-равно и меня сейчас тоже напечатают 4 раза";
    print(anotherString);
}
единственное что вам нужно сделать - это внутри этого метода вывести на экран то, что попадает в метод в переменную s. надеюсь, что многобукав вас не запутали и вы все поняли :)
25 мая 2018, 15:10
От fatfaggy: если вы работали когда-нибудь в командной строке, то знаете, что при вызове какой-то команды вы можете передать в нее какие-то аргументы. например
chown -R root:root /home/user/test.txt
java --version
dir C:\Windows\system32
та вот, "chown" это так называется сама программа, которая будет выполняться, а -R root:root /home/user/test.txt это аргументы, которые вы передаете в программу и на основании чего ваша программа будет что-то там уже делать. так вот, в массив строк args в таком случае попадет -R root:root /home/user/test.txt, разбитое по пробелам. но это все уже потом :)
25 мая 2018, 15:11
От fatfaggy: void - это возвращаемое значение. есть методы которые умеют что-то возвращать (например вы передали в него два числа, а он вернул их сумму), а есть методы которые ничего не возвращают (ваш метод print, который просто напечатал что-то на экране и все). так вот ключевое слово void как-раз и означает, что этот метод ничего возвращать не будет. main - это просто название метода такое, вот и все. ну с английского переводится как главный/основной. в скобочках, как вы уже знаете, указывается что этот метод умеет принимать. а принимает он массив (знак []) строк (String) и этот массив называется args
25 мая 2018, 15:12
От fatfaggy: насчет public static void main(String[] args) - тоже будет детально все разбираться позже, когда вы познакомитесь с объектами. но если коротко, то: модификатор доступа public значит что этотметод - публичный, а значит доступен всем на свете)) то-есть вы из какого-то своего другого класса сможете вызвать этот метод static значит, что метод статичный, то-есть принадлежит именно классу, а не объектам, которые могут быть созданы на основе этого вашего класса
25 мая 2018, 15:13
От fatfaggy: для того, чтобы иметь возможность передавать в каких-то одних случаях только строку, а в каких-то других случаях и строку и число - есть два выхода:
  1. сделать два разных метода, один назвать например print1(String s), а второй print2(String s, int i). ну и вызывать их отдельно для каждой из ситуаций.
  2. сделать то, что называется "перегрузкой" метода. когда у вас будет два разных метода с одинаковыми именами, и тогда уже джава сама будет решать какой из методов вызвать, в зависимости от того, что вы в этот метод передаете. но об этом вы прочитаете в дальнейших лекциях еще :)
25 мая 2018, 15:14
От fatfaggy: пример:
public static void main(String[] args) {
    print("я строка", 18);
}
public static void print(String s, int i){
    System.out.println(s);
    System.out.println(i);
}
тут вы когда вызываете метод, то в скобках передаете ему строку "я строка" и число 18. а уже в самом методе вы указываете, что он у вас умеет принимать какую-то строку (String s) и какое-то число (int i), которые он потом просто выводит на экран. но поскольку он теперь принимает два параметра, то если ему передать только одну строку и без числа - он будет ругаться и откажется работать)
25 мая 2018, 15:14
От fatfaggy: когда ваш метод получил эту строку - он уже что-то там с ней делает) в данном случае выводит на экран 4 раза. кроме того, в метод можно передавать не один параметр, а несколько (например, строку и число). НО! тогда вы должны указать в вашем методе, что он принимает строку и число. если этого не сделать и пытаться передать в метод (который принимает только один параметр строку) что-то другое (например строку и число) - то вы получите ошибку :)
25 мая 2018, 15:15
От fatfaggy: если действительно разобрались - замечательно! :) ведь если бы вам просто написали ответ правильный - вряд ли вы бы запомнили что и как и почему. поэтому многие люди тут стараются дать такой ответ, чтобы объяснить суть, но вместе с тем, у вас осталось бы пространство для творчества, так сказать) то, что вы назвали "методом тыка") насчет передачи данных в вызываемый метод в лекциях объясняли. может не настолько разжевано, но было точно :) да, все верно, вы в методе main вызываете ваш метод print и в скобках передаете ту строку, с которой ваш метод будет работать.
25 мая 2018, 15:26
От автора поста (AndrewR): Предыдущий комент от себя удалять не буду :) Разобрался только что как говорят "методом тыка". Просто пробовал "от фонаря" разные варианта. И О ЧУДО !!! сделалось оно как-то. Оказывается: на экран нужно вывести это "Java easy to learn!". То есть print("Java easy to learn!"); ниже превращается просто в s. А далее нужно вывести s на экран 4 раза через System.out.println. Почему не объясняют в лекциях о передачи данных и (в данном случае) о передачи строк - не понятно. И про метод детально было бы хорошо написать! Что значает каждое слово из public static void main(String[] args)
25 мая 2018, 15:28
От автора поста (AndrewR): fatfaggy, не понимаю и всё тут. :( Мозг не принимает инфы. В вашем коде мне не понятно от куда программа видит что нужно напечатать строку 4 раза. Мы же не пишем никакой команды 4 раза... Объясните пожалуйста конкретно каждый шаг. Я до этого совсем не имел дела с программирование. И мне вообще ничего не ясно. А в лекциях не рассказывают. К примеру как выводить строку на экран через System.out.print - всё понятно, так как это объясняют в курсе. А что такое метод, как его написать и тем более как его вызвать, нет тут материала. :( Поэтому мне очень тяжело понять. Будьте добры объясните
25 мая 2018, 15:02
От OzzzI: Ну вообщем задачю я решил и она прошла тестирования, но понимания как что работает так и не появилось. Как связано между собой метод main i метод Print и что такое Print ("text") и если тело класса состоит из методов и переменных (которых мы уже знаем 3 int, double, String) то где здесь переменные? Не могу уловить логику работы программы. Хочется думать что я не дурак и способен постичь истину но эта джава меня просто гнобит!
25 мая 2018, 15:02
От Pavel1995: public static void main(String[] args) { print("Java easy to learn!"); }
public static void print(String s)
{
    for(int i = 0; i < 4; i++)
    System.out.println(s);
25 мая 2018, 15:02
От dara: Рахмет всем за примеры!
25 мая 2018, 15:01
От Artem101: Напишу, как это понял - я.
  1. В методе mein, уже написано что нужно компилятору выводить на экран - print("Java easy to learn!"); тут понятно.
  2. А в методе print этому тексту дали значение String s - public static void print(String s) это тоже что и String s = "Java easy to learn!";
  3. Теперь нам просто нужно вывести текст в методе print 4 раза - я это сделал при помощи while (количество повторов). Ну и вывод текста - System.out.println(s);Надеюсь, что кому-то это помогло.
Nikita Koliadin Full Stack Developer в Приватбанк
25 мая 2018, 14:46
:D
Vladimir
Уровень 40
Master
25 мая 2018, 14:42
Это, что фейк?
Алексей Еленевич Соучредитель в CodeGym Moderator
25 мая 2018, 14:52
Да, переносим публикации с info.javarush и help.javarush.