Уважаемые форумчане, скажите, почему все методы класса в java должны быть static (статичными) для запуска программы?
То есть, я сначала написал пример простейшей программы и статичный у меня был только метод main().
В итоге я не смог воспользоваться в нем другим методом, описанным в этой же программе. Компилятор ругался. Дописал static( на уровне интуиции и подсказок компилятора) -- заработало.
_____
пример:
public class primer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
cena(90);
}
public static double cena(double cen){
if (cen > 100){
cen = 0.8*cen;
System.out.println("Ваша скидка 20 % и ваше цена " + cen);
}
else{
cen = 0.9*cen;
System.out.println("Ваша скидка 10 % и ваше цена " + cen);
}
return cen;
}
}
_______
Не понял вот что:
1. почему все методы, если вызывать их в main() должны быть статичными?
2. можно ли их вызывать в другой части программы, чтобы не писать static ?
3. static -- это значит доступный везде? в любой части класса?
4. зачем в методе main в параметрах (String[] args) ? Ведь туда ничего не передается.. .
5. И еще что значит комментарий:
/**
* @param args
*/
Синтаксис комментария особенный, насколько я помню по книге. Нужен чтобы формировать git, верно?
Можно ли его удалять?
Прошу меня извинить, если допустил ошибки в формулировке вопросов.