Помогите пожалуйста понять логику. Почему мы не присваиваем через (=) в строке // hackSalary(700); А далее в строке // public static void hackSalary(int a) мы уже имеем переменную а = 700 . Для чего вообще два метода создается в этом примере(метод main и hackSalary)? Голова скоро взорвется... или это дальше будет понятно при прохождении курса\? В любом случае спасибо огромное!
package com.javarush.task.task02.task0205;
/*
Прибавка к зарплате
*/
public class Solution {
public static void main(String[] args) {
hackSalary(700);
}
public static void hackSalary(int a) {
}
}
Antonio Abelardo
15 уровень
Помогите осознать. Не могу понять почему hackSalary(700); не присваивается через (=)
Обсуждается
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Константин
4 января 2019, 22:08
приведите пример на этой задачи, потому что все понятно , а сделать как? ведь не рассказано в курсе до этого
+1
Zaur Vagabov
4 января 2019, 21:16
Когда Java-интерпретатор выполняет приложение (путем его вызова в класс управления приложениями), он начинается с вызова метода main класса. Затем основной метод вызывает все другие методы, необходимые для запуска вашего приложения
А метод hackSalary(int a) создается для избавления от дублирования кода, т.к. по условию задачи тебе нужно выводить в консоль определенный текст..и гораздо удобнее определить в методе hackSalary(int a) вывод в System.out.println(...), и в методе main обращаться к этому методу, чем выводить System.out.println(...) в методе main
+1
Сергеев ВикторMaster
4 января 2019, 21:12полезный
метод main это точка входа, jvm при запуске ищет в классе именно его, чтобы начать что-то делать.
hackSalary - это уже ваш метод с вашей логикой, который вы вызываете в main. При вызове вы передаете какое-то число, оно будет записано в переменную "a" автоматически при вызове метода.
2 метода - мне как-то сложно это объяснить. Методы нужны, чтобы группировать какую-то логику
Например hackSalary должен хакнуть зарплату. Это понятно из названия (пусть и не понятно что это значит).
Представьте такой кусок кода:
не совсем понятно что тут происходит да?
А если так:
Стало чуть понятнее, даже если убрать тело метода и оставить только
понятно, что метод должен отправить письмо. А голый алгоритм не очевиден. Для этого алгоритм делится и именуется в соответствии с назначением.
+5
Antonio Abelardo
5 января 2019, 12:26
public class Solution { // Создали класс Солюшн
public static void main(String[] args) { //в классе "Солюшн" мы создаем метод "Мейн(главный)"
hackSalary(700); // Создаем переменную "хакСалари(700)" вот почему 700 в скобках?? и не через (=) присвоено не понятно!!!
}
public static void hackSalary(int a) { //Создаем метод "хаскСалари" в методе "Мейн" и тут уже в скобках (nt a) не пойму как это работает....
}
}
+1
Сергеев ВикторMaster
5 января 2019, 12:44
неправильно, правильно так:
нет, не в методе main а снаружи. в Скобках int a это то, что принимает метод как параметр, чтобы с ним работать. Какое бы число не было передано в этот метод, оно будет находится в переменной a
+3
Antonio Abelardo
5 января 2019, 12:53
Благодарю! Пазл почти собран. Думаю дальше это будет описано в уроках....
0
Antonio Abelardo
5 января 2019, 12:56
А как так , разве возможно сначала "вызываем метод hackSalary и параметром передаем 700" , а потом только его создать... Последовательность обратная?
0
Сергеев ВикторMaster
5 января 2019, 14:06
java компилируемый язык. Это значит, что сначала все компилируется, потом исполняется. К моменту запуска кода, все методы уже созданы.
0