logo

Јава маин() метода

Маин() је почетна тачка за ЈВМ за почетак извршавања Јава програма. Без методе маин(), ЈВМ неће извршити програм. Синтакса методе маин() је:

Главни метод Јава

јавно: То је спецификација приступа. Требало би да користимо јавну кључну реч пре маин() методе тако да ЈВМ може да идентификује тачку извршења програма. Ако користимо приватну, заштићену и подразумевану пре маин() методе, она неће бити видљива за ЈВМ.

статички: Методу можете учинити статичном користећи кључну реч статиц. Требало би да позовемо метод маин() без креирања објекта. Статичке методе су метод који се позива без креирања објеката, тако да нам није потребан никакав објекат да позовемо маин() метод.

празнина: У Јави, сваки метод има тип враћања. Кључна реч Воид потврђује компајлеру да метода маин() не враћа никакву вредност.

главни(): То је подразумевани потпис који је унапред дефинисан у ЈВМ-у. ЈВМ га позива да изврши програм ред по ред и заврши извршење након завршетка ове методе. Такође можемо преоптеретити метод маин().

Стринг аргс[]: Метод маин() такође прихвата неке податке од корисника. Прихвата групу стрингова, која се назива низ низова. Користи се за држање аргумената командне линије у облику стринг вредности.

 main(String args[]) 

Овде је агрс[] име низа, и то је стринг типа. То значи да може да складишти групу стрингова. Запамтите, овај низ такође може да складишти групу бројева, али само у облику стринга. Вредности које се прослеђују методу маин() називају се аргументима. Ови аргументи се чувају у низу аргс[], тако да се име аргс[] обично користи за њега.

Шта се дешава ако је метода маин() написана без Стринг аргс[]?

Програм ће се компајлирати, али се неће покренути, јер ЈВМ неће препознати маин() метод. Запамтите да ЈВМ увек тражи метод маин() са низом типа стрингова као параметром.

Процес извршења

Прво, ЈВМ извршава статички блок, затим извршава статичке методе, а затим креира објекат који је потребан програму. Коначно, извршава методе инстанце. ЈВМ извршава статички блок на основу највишег приоритета. То значи да ЈВМ прво иде у статички блок чак и пре него што тражи маин() метод у програму.

Пример

 class Demo { static //static block { System.out.println('Static block'); } public static void main(String args[]) //static method { System.out.println('Static method'); } } 

Излаз:

 Static block Static method 

Примећујемо да ЈВМ прво извршава статички блок, ако је присутан у програму. Након тога тражи метод маин(). Ако метода маин() није пронађена, даје грешку.

Пример

Програм који нема методу маин() даје грешку током извршавања.

 class DemoStaticBlock { Static //static block { System.out.println('Static block'); } } 

Излаз:

 Error: Main method not found in the class Demo, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application 

Дакле, метода маин() увек треба да буде написана као:

 public static void main(String args[]) 

Можемо да разменимо јавно и статично и запишемо то на следећи начин:

 static public void main(String args[]) 

Такође можемо користити другачије име за низ типа Стринг и записати га као:

 static public void main(String[] x) 

Различити начини писања маин() методе су:

 static public void main(String []x) static public void main(String...args) 

Стринг...аргс: Омогућава методу да прихвати нула или више аргумената. Између стринга и низа треба да буду тачно три тачке; у супротном, даје грешку.

Пример

Програм који нема маин() метод, али се компајлира и ради успешно.

 abstract class DemoNoMain extends javafx.application.Application { static //static block { System.out.println('Java'); System.exit(0); } } 

Излаз:

 Java 

Преоптерећење маин() методе

Такође можемо преоптеретити метод маин(). Можемо дефинисати било који број маин() метода у класи, али потпис методе мора бити другачији.

Пример

 class OverloadMain { public static void main(int a) //overloaded main method { System.out.println(a); } public static void main(String args[]) { System.out.println('main method incoked'); main(6); } } 

Излаз:

рекха индиан
 main method invoked 6