# Kaip naudoti Java metodą main():

`main()` metodas yra kiekvienos Java programos pradžioje ir pabaigoje. Vykdymo metu atsižvelgiama tik į jo taikymo srityje esančius teiginius. Todėl labai svarbu atkreipti dėmesį į kiekvieną metodo sintaksės detalę. Jei ji yra neteisinga, programa nebus vykdoma.

## Kas yra `main()` metodas Java kalboje?

Nesvarbu, kokį projektą norite įgyvendinti naudojant programavimo kalbą ar kokį glaustą ar išsamų kodą tam naudojate, Java kalboje kiekviena programa prasideda nuo `main()` metodo. Jei jis nėra prieinamas, kodas **negali būti vykdomas**. Prieš perduodant jį `main()`, Java Virtual Machine (JVM) įkeliama į atmintį ir kodas kompiliuojamas. Atlikus šiuos veiksmus, kodas patikrinamas naudojant Java `main()` metodą. Tada jis, tikimasi, bus teisingai vykdomas. Iš esmės taip pat galima naudoti kelis iš šių metodų, tačiau maksimalus skaičius yra vienas pagrindinis metodas vienai klasei.

## Kokia yra Java metodo `main()` sintaksė?

Java `main()` metodo sintaksė visada yra ta pati. Ji susideda iš kelių svarbių dalių ir atrodo taip:

```java
public static void main(String[] args)
```

Šie komponentai atlieka šias funkcijas:

- `public`: Šis komponentas užtikrina, kad klasė taip pat būtų prieinama iš išorės.
- `static`: Ši dalis deklaruoja metodą kaip statinį, o tai reiškia, kad jis gali egzistuoti be iš anksto sukurto konkrečios klasės objekto.
- `void`: Tai užtikrina, kad `main()` metodas Java kalboje neturi grąžinti vertės. `main`: Tai yra tai, ką Java Virtual Machine naudoja metodui identifikuoti, kai vykdo programą.
- `String[] args`: Tai yra masyvas, kuriame saugomi ir gaunami komandinės eilutės argumentai.

## Kodėl `main()` atskiri komponentai yra svarbūs?

Norėdami geriau suprasti, kaip veikia Java `main()` metodas ir kodėl visi komponentai yra tokie svarbūs, tolesniuose skyriuose juos apžvelgsime atskirai. Svarbiausia, parodysime, kas atsitinka, jei **trūksta dalies parašo**. Tam pasirinksime labai paprastą kodo pavyzdį, kurį išvesime naudodami Java komandą `System.out.println`.

```java
public class main {
	public static void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Kai vykdysite šį kodą, gausite tokį rezultatą:

```java
Here is your sample text.
```

### `public`

`public` veikia kaip prieigos specifikatorius ir signalizuoja Java virtualiai mašinai, **kur vykdoma atitinkama programa**. Yra ir kitų prieigos modifikatorių, pvz., numatytasis, privatus ir apsaugotas. Tačiau, jei juos naudosite su `main()` metodu Java, gausite klaidos pranešimą:

```java
public class main {
	private static void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Atitinkamas klausimas yra:

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

Šis klaidos pranešimas reiškia, kad nėra viešos prieigos prie metodo.

### `static`

Raktinis žodis `static` patvirtina, kad naudojamas metodas yra statinis. Tai reiškia, kad jis gali būti naudojamas **nepriklausomai nuo klasės instancų**. Jei pašalinsite šį komponentą, kodas atrodys taip:

```java
public class main {
	public void main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Čia taip pat gaunate klaidos pranešimą:

```java
Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)
```

### `void`

`void` yra raktinis žodis, kuris nurodo, kad `main()` metodas Java kalboje **neturėtų grąžinti jokių verčių**. Kadangi `main()` yra programos Java kalboje pradžia ir pabaiga, atvaizdavimas yra nereikalingas. Štai kaip atrodo kodas be `void`:

```java
public class main {
	public static main(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Tai yra klaidos pranešimas, kurį gausite, jei praleisite `void`:

```java
Error: Main method must return a value of type void in class Main, please define the main method as:
public static void main(String[] args)
```

### `main`

Kiekvienai Java programai JVM pirmiausia ieško identifikatoriaus `main`. Tai nurodo, **kur turi prasidėti ir baigtis vykdymas**. Kai tik Java `main()` metodas baigia vykdymą, programa uždaroma. Todėl parašo niekada negalima keisti ar papildyti. Štai pavyzdys, kaip atrodo parašo pakeitimas:

```java
public class main {
	public static void replacementMain(String[] args) {
		System.out.println("Here is your sample text.");
	}
}
```

Kadangi JVM negali rasti identifikatoriaus, ji tiesiogiai nutrauks programą ir išduos šią klaidos žinutę:

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

### `String[] args`

`String[] args` masyvas atitinka **java.lang.String** klasę ir jame saugomi duomenys, kurie yra išsaugomi kaip styginių reikšmės. Jei šią specifikaciją praleisite, kodas atrodys taip:

```java
public class main {
	public static void main() {
		System.out.println("Here is your sample text.");
	}
}
```

Be argumento Java `main()` metodas negali būti vykdomas. Dėl to vėl gausite šią klaidos žinutę:

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

## Kokios yra alternatyvios rašybos?

Čia pateiktas kodo pavyzdys buvo parašytas pagal labiausiai paplitusią sintaksę. Tačiau jį galite lengvai pritaikyti, kad būtų lengviau suprasti. Pavyzdžiui, kvadratines skliausteles galite įdėti tiesiai po `args`. Tai atrodytų taip:

```java
public static void main(String args[]) { }
```

Argumentus taip pat galite saugoti kaip kintamus argumentus (varargs). Tam reikia naudoti trikampį:

```java
public static void main(String...args) { }
```

Tip Mūsų skaitmeniniame vadove rasite daugybę kitų straipsnių apie Java. Galite paskaityti apie [Java ir JavaScript palyginimą](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-pries-javascript/) arba sužinoti daugiau apie Java operatorius.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-metodas-main/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-metodas-main/) for AI/LLM consumption.